0% found this document useful (0 votes)
28 views19 pages

Java OOP Osnove

osnove java oop programiranje
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views19 pages

Java OOP Osnove

osnove java oop programiranje
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

JAVA

import java.util.Scanner;: Ovaj red importuje klasu Scanner iz java.util paketa. Klasa
Scanner omogućava unos podataka sa tastature.

public static void main(String[] args) { }

 public: Ključna reč public označava da je ova metoda dostupna izvan klase i može
biti pozvana iz bilo kog drugog dela programa.

 static: Ključna reč static označava da je ova metoda statička, što znači da se može
pozvati direktno preko imena klase, a ne mora se kreirati objekat klase da bi se
pozvala.

 void: Tip povratne vrednosti metode. Ovde je void, što znači da metoda ne vraća
nikakvu vrednost.

 main: Naziv metode. Glavna metoda u Java programu uvek se zove main.

 (String[] args): Ovo su argumenti glavne metode. String[] args označava niz
stringova koji se mogu proslediti programu kada se pokrene. Ovi argumenti se često
koriste za prosleđivanje parametara programu kada se pokreće iz komandne linije, ali
u ovom primeru nisu korišćeni.

Scanner scanner = new Scanner(System.in);: Ovde se kreira objekat Scanner koji će


se koristiti za unos podataka sa standardnog ulaza (tastature).
double r = scanner.nextDouble();: Korisnik unosi vrednost poluprečnika kruga preko
tastature, koja se čita koristeći objekat scanner, a zatim smešta u promenljivu r.
int numberOfElements = scanner.nextInt();: Korisnik unosi broj elemenata niza preko
tastature, a zatim se ta vrednost čita koristeći objekat scanner i smešta u promenljivu
numberOfElements.

int[] arrayOfNumbers = new int[numberOfElements];: Kreira se niz arrayOfNumbers


čija je dužina jednaka vrednosti unetoj od strane korisnika.

1. int[] arrayOfNumbers = new int[numberOfElements];: Kreira se niz


arrayOfNumbers čija je dužina jednaka vrednosti unetoj od strane korisnika.

2. int sum = 0;: Inicijalizuje se promenljiva sum koja će se koristiti za čuvanje sume
elemenata niza.

3. for (int i = 0; i < numberOfElements; i++) {: Počinje petlja koja će se izvršavati


numberOfElements puta, tj. koliko je korisnik uneo elemenata niza.

4. System.out.print((i + 1) + ". broj: ");: Ispisuje se poruka koja traži korisnika da


unese vrednost za trenutni element niza.

5. arrayOfNumbers[i] = scanner.nextInt();: Korisnik unosi vrednost za trenutni


element niza, koja se čita koristeći objekat scanner i smešta u odgovarajući element
niza.

6. sum += arrayOfNumbers[i];: Dodaje se vrednost trenutnog elementa niza na


postojeću sumu elemenata.

Naredbe
U Javi imamo tri kategorije upravljackih naredbi:

Selekcije: if, switch

Ciklusi: for, while

Skokovi: break, continue


Naredba swtich predstavlja višestruko grananje

Switch (expression) {

Case value1:

Statement1;

Break;

Case value2; …..

Default:

Statement4; }

While – while (condition) {…}

Naredbe skoka: break, continue, return


Return se koristi za eksplicitni izlazak iz neke metode

Break se koristi: za izlazak iz switch iskaza, za izlazak iz petlje, bolja verzija naredbe goto u Javi

Za pristupanje elementima niz koristi se operator [], nizovi su složeni tipovi podataka, dužina
niza može da se dobije pristupanjem polju length.

Ime niza ili matrice je samo referenca na podatak koji se nalazi u memoriji.
Moguće je izjednačiti ime jednog niza sa imenom drugog niza, I tada će obe reference biti
vezane za isti podatak u memoriji. Broj dimenzija jednog niza mora odgovarati roju
dimenzija drugog niza.

Nizove je moguće upoređivati korišćenjem relacionih operatora ==, !=

Pr1. Napisati program koji pronalazi najmanji od tri učitana broja


Pr2. Napisati program koji sortira tri uneta realna broja u neopadajućem redosledu

if (a > b) { double tmp = a; a = b; b = tmp; }: Proverava se da li je prvi broj (a) veći od


drugog broja (b). Ako jeste, vrši se zamena vrednosti a i b.

Promenljiva tmp se koristi da bi se čuvala originalna vrednost promenljive a pre nego što se
ona dodeli promenljivoj b. Na taj način se obezbeđuje da se originalna vrednost a ne izgubi,
već se čuva u tmp, dok se promenljivama a i b dodeljuju nove vrednosti u skladu sa
zamjenom. Nakon što se vrednosti promenljivih a i b zamene, vrednost iz tmp se dodeljuje
promenljivoj b, čime se završava zamena.

Selection sort
1. Pronalaženje najmanjeg elementa: Prvo se prolazi kroz niz kako bi se pronašao
najmanji element. Ovaj element se zatim zadržava.

2. Zamena sa početkom niza: Nakon što se pronađe najmanji element, on se


zamenjuje sa elementom na početku niza.

3. Pomera se početak niza: Početak niza se pomera za jedno mesto unapred, tako da
sledeći najmanji element bude pronađen među preostalim elementima.

4. Ponavljanje: Ovi koraci se ponavljaju sve dok se ceo niz ne sortira.

Petlja za unos dužine niza: Program koristi beskonačnu petlju (while (true)) koja
omogućava korisniku da unosi dužinu niza sve dok ne unese negativnu vrednost ili nulu. Ako
korisnik unese negativnu vrednost ili nulu, petlja se prekida pomoću break.

Generisanje slučajnih brojeva: Nakon što je uneta dužina niza, program generiše niz
slučajnih decimalnih brojeva koristeći Math.random() i množenjem sa 10 kako bi se dobili
brojevi u opsegu od 0 do 10.

Ispis početnog niza: Ispisuju se komponente početnog niza koristeći petlju for-each.

Sortiranje niza: Nakon generisanja početnog niza, program primenjuje selection sort
algoritam na nizu. Ideja algoritma je da prolazi kroz niz i pronalazi najmanji element, a zatim
ga menja sa prvim elementom. Ovaj proces se ponavlja za svaki sledeći element dok se celi
niz ne sortira.
Insertion sort
1. Prolazak kroz niz: Algoritam prolazi kroz niz počevši od drugog elementa (indeks
1), smatrajući da je prvi element već sortiran.

2. Umetanje u sortiran deo: U svakom koraku, algoritam uzima sledeći element niza i
"umetne" ga na odgovarajuće mesto unutar već sortiranog dela niza.

3. Pomeranje elemenata: Da bi umetnuo element na odgovarajuće mesto, algoritam


"pomiče" veće elemente u sortiranom delu niza jedno mesto desno, dok ne pronađe
pravo mesto za umetanje.

4. Ponavljanje: Ovi koraci se ponavljaju sve dok ne prođe kroz ceo niz, pri čemu svaki
put sortirani deo niza postaje sve veći.

5. Završetak: Kada se završi prolazak kroz ceo niz, svi elementi će biti sortirani.
Beskonačna petlja: Program koristi beskonačnu petlju (while (true)) kako bi omogućio
korisniku da unosi dužinu niza sve dok ne unese negativnu vrednost ili nulu. Ako korisnik
unese negativnu vrednost ili nulu, petlja se prekida pomoću break.

Generisanje slučajnih brojeva: Nakon što je uneta dužina niza, program generiše niz
slučajnih decimalnih brojeva koristeći Math.random() i množenjem sa 10 kako bi se dobili
brojevi u opsegu od 0 do 10.

Sortiranje niza: Nakon generisanja početnog niza, program primenjuje insertion sort
algoritam na nizu. Algoritam prolazi kroz niz od drugog elementa do poslednjeg, umetajući
svaki element na pravo mesto unutar sortiranog dela niza.
Klase
Podaci unutar klase nazivaju se članovi, polja ili atributi klase.

Funkcije koje su deo klase nazivaju se funkcije članice, primitivne operacije ili
metode.

Definicija klase sadrži: polja, metode, definicije drugih klasa, inicijalizacione blokove,
konstruktore.

Članovima klase se pristupa pomoću operatora selekcije, this:


Specijalna referenca na objekat kome se upravo pristupa, može se koristiti za
pristup “sakrivenim” članovima.

Polja klase predstavljaju podatke sadržane u klasi, moguće je inicijalizovati ih u


samoj deklaraciji.

Metode klasa su fukncionalni članovi koji obavljaju operacije nad poljima klasa,
mogu imati povratne vrednosti, mogu menjati prosleđene parameter referentnog
tipa. Kao I polja mogu biti private, public I protected.

int method(int par1, double par2);

Tip metode – povratna vrednost, ime metode, lista parametra, telo metode,
side effects.

P Rekurzivna metoda

Primer definisanja metoda (metode koje pozivaju


same sebe)
Metode sa promenljivim brojem argumenata – Poslednji parameter može da bude
oblika:

tipParametra… imeParametra

Obavezni parametri moraju da se navedu, od opcionih argumenata se generiše niz.

1. Definisanje klase: Klasa se definiše ključnom rečju class, a zatim ime


klase. U okviru klase se navode atributi i metode.
2. Kreiranje objekta: Nakon definisanja klase, možete kreirati objekat te klase
pomoću new operatora.
MyClass myObject = new MyClass(10);
3. Pozivanje metoda: Nakon kreiranja objekta, možete pozivati metode koje
pripadaju toj klasi pomoću tačkastog operatora (‘.’)
myObject.myMethod();
4. Pristupanje atributima: Takođe, možete pristupiti i promeniti atribute
objekta pomoću tačkastog operatora.
System.out.println(myObject.myAttribute);

Preklapanje imena metode - definisanje vise metoda sa istim imenom unutar jedne
klase.

Konstruktori
Konstruktori su specijalne metode u Javi koje se koriste za izgradnju objekata. Opsti
oblike je veoma sličan definiciji metoda. Osnovna svrha konstruktora je postavljanje
početnih vrednosti objekta ili izvršavanje određenih operacija potrebnih za pripremu
objekta za rad.

1. Ime isto kao i klasa: Konstruktor ima isto ime kao i klasa u kojoj se nalazi.

2. Nema povratnu vrednost: Konstruktor nema deklarisan tip povratne


vrednosti, čak ni void. Ovo ga razlikuje od ostalih metoda koje mogu imati
povratnu vrednost ili biti deklarisane kao void ako ne vraćaju nikakvu
vrednost.

3. Automatski pozivan prilikom kreiranja objekta: Konstruktor se


automatski poziva prilikom kreiranja objekta te klase pomoću new operatora.

4. Mogućnost preopterećenja: Klasa može imati više konstruktora, pri čemu


se razlikuju po broju i tipu parametara. Ovaj koncept se naziva
preopterećenje konstruktora.
U ovom primeru, MyClass klasa ima dva konstruktora: jedan bez parametara
(default konstruktor) i jedan sa jednim parametrom. Prvi konstruktor postavlja
vrednost atributa na 0, dok drugi konstruktor postavlja vrednost atributa na
vrednost koja je prosleđena kao argument prilikom kreiranja objekta.

Objekti
Objekti su primerci klasa, sadrže sva polja I metode klase.

Promeljive kojima su definisani objekti su reference na objekat.


Relacionim operatorima == != se upoređuju reference, ne sami objekti.

Uzmimo za primer klasu Automobil. Ova klasa može definisati karakteristike


(atribute) i ponašanje (metode) automobila.

Sada, kada imamo definisanu klasu Automobil, možemo kreirati konkretne


instance (objekte) tog automobila.

U ovom primeru, mojAuto je objekat tipa Automobil. Kada ga kreiramo pomoću


new operatora, rezerviše se memorija za taj objekat. Atributi objekta (marka,
model i godiste) su inicijalizovani njihovim podrazumevanim vrednostima. Nakon
toga, možemo postaviti ove atribute na određene vrednosti i pozvati metode koje
definiše klasa Automobil.
Inicijalizacioni blokovi
Omogućavaju inicijalizaciju polja klasa, postoje statički I nestatički.

Statička polja se inicijalizuju prilikom inicijalizacije klase (učitavanja klase u


memoriju).

Final polja moraju da dobiju vrednosti do završetka inicijalizacije objekta.

Statički in.blokovi

Definisani su blokom ispred koga stoji ključna reč static.

Statički inicijalizacioni blokovi: Statički inicijalizacioni blokovi se izvršavaju samo


jednom, prilikom učitavanja klase u memoriju, pre nego što se bilo koji objekat tog
tipa kreira. Oni se koriste za inicijalizaciju statičkih promenljivih ili izvođenje drugih
statičkih akcija vezanih za klasu.

Nestatički in.blokovi

Nemaju modifikator static ispred vitičastih zagrada in.bloka.

Koriste se za setovanje vrednosti nestatičkih polja.

Unutar nestatičkih in.blokova mogu se koristiti vrednosti svih statičkih polja.

Instancirajući inicijalizacioni blokovi se izvršavaju prilikom kreiranja svake instance


(objekta) klase, pre pozivanja konstruktora. Oni se koriste za inicijalizaciju instance
promenljivih na određene vrednosti ili izvođenje drugih akcija prilikom kreiranja
objekta.
hh

You might also like