Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- klasa
- - osnovna jedinica programiranja na jeziku Java
- klase sadrze:
- polja (atribute, podatke cinioce)
- metode (operacije, funkcije)
- mehanizmi za stvaranje objekata (konstruktore)
- inicijalizovane blokove
- ugnezdjene tipove
- polja
- struktura podataka objekta
- definisu stanje objekta
- metode
- sadrze izvrsni kod (na njima je fokus obrade)
- definisu ponasanje objekta
- Ugovor i implementacija
- OOP striktno razdvaja pojmove:
- Sta se radi?
- kako se radi?
- "Sta" je definisano ugovorom - skupom;
- potpisa javnih metoda
- ukljucuje ime metoda, broj i tipove argumenata
- pridruzenom semantikom
- "Kako" je opisano odredjenom implementacijom - skupom:
- definicija metoda
- podataka koji nisu javni
- javni podaci su i deo implementacije ali i ugovora
- - sto svakako treba izbegavati
- primeri klasa
- class NT {
- private static long sledID = 0;
- private long id = sledID++;
- private String ime = "nepoznato";
- private NebeskoTelo kruziOko;
- public long citajID() { return id; }
- public NT(String ime) { this.ime = ime; }
- public NT(String ime, NT centar) {
- this.ime = ime;
- kruziOko = centar;
- }
- }
- public String toString() {
- String opis = id + " (" + ime + ")";
- if(kruziOko != null) opis += " centar rotacije: " + kruziOko;
- return opis;
- }
- System.out.println("Telo: " + sunce);
- System.out.println("Telo: " + zemlja);
- System.out.println("Telo: " + mesec);
- Telo: 0 (Sunce)
- Telo: 1 (Zemlja) centar rotacije: 0 (Sunce)
- Telo: 2 (Mesec) centar rotacije: 1 (Zemlja) centar rotacije: 0 (Sunce)
- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- . .▓▓▓▓▓▓▓▓▓. .▓▓▓▓▓▓▓▓▓▓▓. .▓▓▓. . . . .▓▓▓. .▓▓▓▓▓▓▓▓▓▓▓. .
- . .▓▓▓. . . . .▓▓▓. . .▓▓▓. .▓▓▓▓▓. . . .▓▓▓. .▓▓▓. . . . . .
- . .▓▓▓. . . . .▓▓▓. . .▓▓▓. .▓▓▓.▓▓▓. . .▓▓▓. .▓▓▓. . . . . .
- . .▓▓▓▓▓▓▓▓▓. .▓▓▓. . .▓▓▓. .▓▓▓. .▓▓▓. .▓▓▓. .▓▓▓▓▓▓▓▓▓▓▓. .
- . . . . .▓▓▓. .▓▓▓. . .▓▓▓. .▓▓▓. . .▓▓▓.▓▓▓. .▓▓▓. . . . . .
- . . . . .▓▓▓. .▓▓▓. . .▓▓▓. .▓▓▓. . . .▓▓▓▓▓. .▓▓▓. . . . . .
- . .▓▓▓▓▓▓▓▓▓. .▓▓▓▓▓▓▓▓▓▓▓. .▓▓▓. . . . .▓▓▓. .▓▓▓▓▓▓▓▓▓▓▓. .
- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- Polje
- struktura > klasa > objekat > polja i metode
- primeri: id, ime, kruziOko, sledeciID ...
- dve vrste:
- nestaticka (jedno po objektu) (id, ime, kruziOko)
- staticka (jedno po klasi) (sledeciID)
- svaki objekat ima svoju vlastitu kopiju nestatickog polja
- svi objekti dele jednu kopiju statickog
- staticka se nazivaju i "promenljive klase"
- staticka polja se inicijalizuju cim se klasa ucita u memoriju
- nestaticka polja se inicijalizuju kad se stvori objekat
- method overlapping - preklapanje
- public NebeskoTelo orbitira() { return kruziOko; }
- public void orbitira(NebeskoTelo centar) { kruziOko = centar; }
- class Ime {
- String s
- Ime() { s = "bezimeni"; } // isto sto i this.s = "bezimeni";
- }
- inciijalizacija objekta
- public String ime = "nepoznato";
- ako se ne da vrednost, bice "nula";
- 0, +0.0f, +0.0, \u0000, false ili null
- za jednostavnu inicijalizaciju bez argumenata koriste se inicijalizacioni blokovi
- konstruktori - operacije za inicijalizaciju objekata
- - isto ime kao klasa, nula ili vise parametara (kao metode), nemaju povratnu vrednost(za razliku od metoda)
- izvrsavaju se nakon sto se :
- poljima pridruze podrazumevane vrednosti, izvrse eksplicitni inicijalizatori, izvrse inicijalizacioni blokovi
- specificni konstruktori(no arg) za podrazumevanu inicijalizaciju
- automatski ugradjen konstruktor(bez arg, ne radi nista - prazno telo)
- obezbedjen je samo ako ne postoji drugi konstruktor, public ako je klasa javna, private ako nije javna
- sa ogranicenim pravom pristupa (ogranicavaju ko moze da kreira objekte(privatni, paketski i zasticeni)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement