Professional Documents
Culture Documents
Studijski program:
Klasa predstavlja logiku konstrukciju (celinu), na kojoj se zasniva programski jezik Java, kojom se definie oblik i nain ponaanja objekata. Klasom se definie novi tip podatka koji se u OO programiranju naziva objekt. Jednom istom klasom se moe formirati vie objekata. Dakle, klasa predstavlja ablon za formiranje objekta, a objekat je samo primerak (nekada se kae instanca) klase. Klasa se deklarie pomou Javine rezervisane rei class. Klasa se sastoji od podataka i programskog koda (koji se u OO programiranju naziva metoda) koji koristi te podatke. Klasa mora da sadri metodu pod nazivom main() samo ako u njoj poinje Java program. Izuzetak od ovog pravila su apleti (posebna vrsta Java programa) koji ne poseduju metodu main().
tip promenljivaN; tip metoda1 { // } . . . tip metodaK { // } (lista parametara) telo metode1
lanovi klase
mojaKutija mojaKutija
objekt Kutija
Operator new
Imenom klase iza koga sledi ( ) odreuje se konstruktor. Konstruktor definie ta se tano deava kada se pravi jedan od objekata klase. Ako konstruktora nema, Java obezbeuje podrazumevani konstruktor (kao u prethodno prikazanom primeru). Formiranim objektima se moe pristupiti preko referenci koje su napravljene prilikom kreiranja objekata. Primer formiranja referenci: Kutija b1 = new Kutija(); Kutija b2 = b1;
Reference na objekte
Promenljivoj b2 nije dodeljena kopija objekta b1 ve mu se dodeljuje referenca na isti objekat! Ovo je sutinska razlika izmeu vrednosnih i referencnih tipova podataka. Sada bi trebalo da bude jasno odakle potie naziv ovih tipova!
Reference (stek): b1 Objekt (heap): irina visina b2 dubina objekt klase Kutija
Dodato
Vraanje vrednosti
class Kutija { double irina; double visina; double dubina; double zapremina () { return irina*visina*dubina; } Rezervisana return re kojom se obezbeuje vraanje vrednosti }
Tip podatka koji se vraa pozivaocu
Klasi Kutija je dodat metoda zapremina() koja vraa vrednost pozivnoj metodi. Ovo je najee koriena verzija metoda.
Konstruktori klasa
class Kutija { double sirina; Konstruktor klase Kutija, inicijalizuje double visina; vrednost pojedinih parametara. Ima isto ime kao i klasa! double dubina; Kutija() { irina=10.0; visina=10.0; zapremina() metoda klase dubina=10.0; } Kutija double zapremina () { return irina*visina*dubina; } }
SCHILDT
Parametarski konstruktori
class Kutija { Kutija(s,v,d), pri inicijalizaciji double irina; definie vrednosti parametara s, v i d double visina; double dubina; Kutija(double s, double v, double d) { irina=s; visina=v; dubina=d; } double zapremina () { return irina*visina*dubina; } SCHILDT }
Parametarski konstruktor
SCHILDT
SCHILDT
Preklapanje metoda
Mogu se definisati vie metoda sa istim imenom sve dok im se dekleracija parametara razlikuju! U tom sluaju metodi su preklopljeni (engl. overload). Na osnovu tipa i/ili broja argumenata Java odreuje koja e se metoda zapravo pozvati!
SCHILDT