Besplatni Java kurs - 66. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.
U jednom od prethodnih članaka objasnio sam šta su konstruktori i kako rade podrazumevani konstruktori. Ali često je potrebno inicijalizovati objekat na različite početne vrednosti, što je nemoguće postići korišćenjem podrazumevanih konstruktora. Zato nam Java omogućava da napravimo konstruktor sa parametrima, baš onako kako to nama odgovara.
Konstruktori sa parametrima
Svaki konstruktor po svojoj sintaksi liči na obične metode. Baš kao što možeš da napišeš metodu koja može (a ne mora) da ima parametre, možeš da napraviš i svoj konstruktor sa ili bez parametara.
Uzmimo za primer našu klasu Knjiga koja ima konstruktor nalik podrazumevanom konstruktoru:
class Knjiga {
public String naslov;
public String autor;
public int brStranica;
public Knjiga(){
this.naslov = null;
this.autor = null;
this.brStranica = 0;
}
}
Konstruktor Knjiga u istoimenoj klasi u ovom obliku uvek će postaviti početne vrednosti na sledeći način:
- naslov svake knjige će biti null
- autor svake knjige će biti null
- svaka knjiga će uvek imati 0 stranica
To verovatno nije ono što želiš. Hajde da dodamo mogućnost da naš konstruktor može da se prilagodi potrebama korisnika svaki put kada je potrebno da se napravi novi objekt knjige:
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;
}
}
Sada je naš konstruktor mnogo prilagodljiviji i može da prihvati naslov, autora i broj stranica prema potrebama korisnika, za svaku knjigu ponaosob.
Uporedi poslednju verziju kôda sa prethodnom. Šta zapažaš?
Baš kao i metode, konstruktor može da prihvati parametre. Nazivi i tipovi parametara konstruktora se definišu u zagradi, posle imena (konstruktora), baš kao i kod metoda (posle imena metode). Možeš da primetiš i da konstruktor ima isto ime kao i klasa kojoj pripada. Upravo po tome Java zna da je u pitanju konstruktor, a ne obična metoda.
Ako obratiš pažnju, primetićeš i da konstruktor nema definisanu povratnu vrednost. To je još jedna osobina koja razlikuje konstruktore od metoda. Tačnije, konstruktor nema eksplicitno definisanu povratnu vrednost. Implicitna povratna vrednost konstruktora kada se koristi uz ključnu reč new je referenca na novonastali objekat klase kojoj pripada.

No comments:
Post a Comment