Besplatni Java kurs - 56. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.
Objekti predstavljaju srž objektnog programiranja u programskom jeziku Java.
Šta su objekti?
Mnogim početnicima je teško da shvate razliku između klasa i objekata. Klase su tipovi podataka koji mogu imati ugrađene funkcionalnosti, objekti su sami podaci na koje se te funckionalnosti primenjuju.
Klase su apstraktan pojam, dok su objekti realna implementacija istog pojma. Uzmimo za primer nešto iz realnog sveta: knjigu. Kako bi neka knjiga mogla biti predstavljena u programskom jeziku Java? Knjiga bi mogla biti predstavjena kao klasa:
class Knjiga {
public String naslov;
public String autor;
public int brStranica;
}
U navedenom primeru klasa koja predstavlja Knjigu sadrži dve promenljive tipa string
(naslov i autor) i jednu promenljivu tipa int
(brStranica). Kao što se može primetiti, nisu navedeni nijedan konkretan naslov niti autor, kao ni broj stranica. To je zato što klase predstavljaju samo apstraktne opise nečega iz realnog sveta. Klase služe kao skup pravila i uputstava kako napraviti nešto konkretno, odnosno neki objekat. U našem primeru pravila su sledeća: svaka knjiga bi trebalo da ima naslov, autora i broj stranica. Hajde da napravimo jednu knjigu, odnosno, da napravimo objekat knjige:
class Knjiga {
public String naslov;
public String autor;
public int brStranica;
}
class Rad {
public static void main(String args[]){
Knjiga praznaKnjiga = new Knjiga();
}
}
Izvršavanjem navedenog kôda biće stvorena jedna knjiga - praznaKnjiga
. Hajde da analiziramo liniju kôda u kojoj se zapravo stvara objekat knjige:
Knjiga praznaKnjiga = new Knjiga();
Sa leve strane znaka jednakosti se vidi da je tip podataka promenljive praznaKnjiga
upravo naša klasa Knjiga
. Sa desne strane znaka jednakosti upotrebom ključne reči new
nakon koje sledi naziv naše klase praćen zagradama, stvara se objekat knjige. Ključna reč new
u kombinaciji sa nazivom klase i praznim zagradama uvek stvara „prazan” objekat tog tipa. Stvaranje objekta nije moguće bez konstruktora. Konstruktori su specijalna vrsta metode. Konstruktori i metode biće detaljno opisani u nastavku kursa. Za sada je dovoljno znati da postoje i da je konstruktor „nešto što stvara objekte”. Svaka klasa podrazumevano sadrži „nevidiljivi” konstruktor koji se poziva navođenjem naziva klase i praznih zagrada.
U našem slučaju svaki put kada stvorimo objekat knjige, knjiga će biti stvorena pozivom podrazumevanog konstruktora koji će ostaviti naše tri promenljive unutar klase ( naslov
, autor
i brStranica
) netaknute. To znači da će promenljive imati podrazumevane vrednosti za svoj tip: prazan string za stringove i 0 za int. Ako stvorimo („odštampamo”) 1000 knjiga, sve će biti iste: bez naslova, bez autora i sa 0 stranica. To verovatno nije ono što bismo želeli. Hajde da promenimo naš kôd tako da pri stvaranju knjiga možemo da odlučimo koji će biti naslov, ko će biti autor i koliko će knjiga imati stranica. To ćemo uraditi tako što ćemo napraviti naš konstruktor koji će moći da stvara knige tako da imaju određeni naslov, ime autora i broj stranica. Nova verzija naše klase Knjiga
izgledaće ovako:
class Knjiga {
public String naslov;
public String autor;
public int brStranica;
public Knjiga(String naslov, String autor, int brStranica){
this.naslov = naslov;
this.autor = autor;
this.brStranica = brStranica;
}
}
Novi konstruktor pod nazivom Knjiga
, preuzeće ulogu stvaranja knjiga od podrazumevanog konstruktora. Ali sada naš kôd više ne radi. To je zato što više nije moguće stvoriti praznu knjigu. Podrazumevani konstruktor nam više nije direktno dostupan, a naš konstruktor zahteva da navedemo naslov, autora i broj stranica knjige koju želimo da stvorimo. Hajde zato da umesto prazne knjige napravimo jednu knjigu koja će imati naslov, autora i broj stranica. Kompletan novi kôd sada izgleda ovako:
class Knjiga {
public String naslov;
public String autor;
public int brStranica;
public Knjiga(String naslov, String autor, int brStranica){
this.naslov = naslov;
this.autor = autor;
this.brStranica = brStranica;
}
}
class Rad {
public static void main(String args[]){
Knjiga Dina = new Knjiga("Dina", "Frenk Herbert", 704);
}
}
Pročitaj i nastavak:
Besplatni Java kurs - 57. deo - Metode
No comments:
Post a Comment