You are on page 1of 19

Objektno

orijentirano
programiranje
3. Klase i objekti
Definicija klase (razreda)

• Klasa je nacrt objekta, odnosno predložak po kojem je


određeni objekt stvoren.
• Klasa je definicija i opis onoga što predstavlja i sama po sebi
nema posebnu funkciju.
• Svaka klasa ima dvije ključne stvari, a to su: atributi (polja,
članovi) i njeno ponašanje (metode).
• Definiraju se uporabom ključne riječi class.
• Primjer stvaranja klase Student
Definicija objekta i njegovo kreiranje
• Objekt je instanca klase i kreiran je na osnovu njene definicije
• Objekt je jedan primjerak klase
• Kreiranje s ključnom riječi new

• Npr: ImeKlase ImeObjekta = new ImeKlase();


Sistemski stog(eng.stack) i hrpa(eng.heap)
• Objekt stvoren pomoću riječi new se stavra na hrpi

• Varijable i reference na objekt se nalaze na sistemskom stogu


Sistemski stog i hrpa (1)
Sistemski stog i hrpa (2)
Sistemski stog i hrpa (3)
Sistemski stog i hrpa (4)
Sistemski stog i hrpa (5)
java.lang.Object
• Klasa Object definirana je u paketu java.lang i predstavlja
vršni razred iz kojega direktno ili tranzitivno svi drugi razredi
nasljeđuju niz korisnih metoda koje su u njemu definirane.
• Metode koje svaki kreirani objekt ima prilikom kreiranja :
o clone()
o equals(Object obj)
o finalize()
o getClass()
o hashCode()
o notify()
o notifyAll()
o toString()
o wait()
o wait(long timeout)
o wait(long timeout, int nanos)
Konstruktori (eng. constructor) (1)
• Specijalne „metode” koje služe za inicijalizaciju objekta
• Pozivaju se prilikom kreiranja novog objekta
• Prema default-u svaka klasa ima konstruktor premda on ne
mora biti napisan
• Npr: public ImeKlase(){}
Konstruktori (eng. constructor) (2)
• Mogu imati parametre

• Npr: public ImeKlase(int pParam1, String pParam2){}


Destruktori (eng. destructor)
• Destruktori su „metode” zadužene za oslobađanje svih resursa
koje je tijekom života zauzeo primjerak klase

• U programskom jeziku Java destruktori ne postoje


• Izbačeni zbog pogreški programera

• Umjesto toga, Java koristi automatsko upravljanje memorijom


uporabom sakupljača smeća (eng. garbage collector) garbage
collector
Sakupljač smeća (eng. garbage collector)
• podsustav koji prati rad programa i periodički oslobađa sve
resurse na koje je program izgubio reference.

• dok program ima referencu na objekt zauzet u memoriji, taj


objekt neće biti oslobođen pa je nemoguće pristupati memoriji
koja je oslobođena i time načiniti pogrešku.

• jednom kada program izgubi referencu na objekt, objekt


postaje smeće i sakupljač smeća će ga u nekom trenutku
reciklirati (odnosno osloboditi memoriju koju je on zauzimao).
Modifikatori vidiljivosti (1)
• Modifikatorividljivosti ograničavaju pristup (vidljivost,
dostupnost)

• može se postaviti ispred klase i taj modifikator smije biti samo


public
o bez modifikatora, razred je vidljiv samo unutar paketa
o iznimka: unutarnji razredi (o njima naknadno) mogu biti private

• može se postaviti ispred članske varijable i metode


o public, private ili protected
o određuju jesu li (i kome) varijable i metode vidljive/dostupne izvan klase
o package-private ako nema modifikatora
Modifikatori vidiljivosti (2)
• Javni pristup: definira se uporabom ključne riječi public.

• Zaštićeni pristup: definira se uporabom ključne riječi


protected.

• Privatni pristup: definira se uporabom ključne riječi private.

• Privatni pristup za paket: definira se nenavođenjem bilo koje


od prethodne tri ključne riječi. Ako se dakle ne navede ništa,
podrazumijeva se ovakav pristup.
Tablica pristupa
• Pravo pristupa varijabli ili metodi neke klase označenoj
određenim modifikatorom sažeto je prikazano sljedećom
tablicom
• Sljedeće predavanje :
4. Svojstva OOP (apstrakcija, nasljeđivanje..)

• Info: hrvoje.radovan@aspira.hr

You might also like