Java Constructor Method

Vytvorte objekt pomocou konštruktora Java

Mladý muž používa svoj laptop, aby sa pokúsil vyriešiť problém s kódom

Emilija Manevska / Getty Images





Konštruktor Java vytvorí novú inštanciu už definovaného objektu. Tento článok popisuje, ako použiť metódy konštruktora Java na vytvorenie objektu Person.

Poznámka: Pre tento príklad musíte vytvoriť dva súbory v rovnakom priečinku: Osoba.java definuje triedu Osoba a PersonExample.java obsahuje hlavná metóda ktorý vytvára objekty osoby.



Metóda konštruktéra

Začnime vytvorením triedy Osoba, ktorá má štyri súkromné ​​polia: meno, priezvisko, adresa a používateľské meno. Tieto polia sú súkromné ​​premenné a ich hodnoty spolu tvoria stav objektu. Pridali sme aj najjednoduchšie metódy konštruktora:

|_+_||_+_|

Metóda konštruktora je podobná akejkoľvek inej verejnej metóde okrem toho, že zdieľa rovnaký názov ako trieda a nemôže vrátiť hodnotu. Môže mať žiadny, jeden alebo viacero parametrov.



V súčasnosti naša metóda konštruktora nerobí vôbec nič a je vhodný čas zvážiť, čo to znamená pre počiatočný stav objektu Osoba. Ak sme nechali veci tak, ako sú, alebo sme nezahrnuli metódu konštruktora do našej triedy Person (in Java môžete definovať triedu bez nej), potom by polia nemali žiadne hodnoty – a určite chceme, aby naša osoba mala meno a adresu, ako aj ďalšie charakteristiky. Ak si myslíte, že existuje možnosť, že sa váš objekt nebude používať podľa vašich predstáv a polia nemusia byť pri vytváraní objektu inicializované, vždy ich definujte s predvolenou hodnotou:

|_+_||_+_|

Normálne, aby sme zabezpečili, že metóda konštruktora je užitočná, navrhneme ju tak, aby očakávala parametre. Hodnoty odovzdané cez tieto parametre možno použiť na nastavenie hodnôt súkromných polí:

|_+_||_+_|

Naša metóda konštruktora teraz očakáva, že jej budú odovzdané hodnoty štyroch reťazcov. Potom sa použijú na nastavenie počiatočného stavu objektu. Pridali sme aj novú metódu tzv displayPersonDetails() aby sme mohli vidieť stav objektu po jeho vytvorení.

Volanie metódy konštruktora

Na rozdiel od iných metód objektu sa metóda konštruktora musí volať pomocou kľúčového slova „new“:



|_+_||_+_|

Tu je to, čo sme urobili:

  1. Na vytvorenie novej inštancie objektu Osoba najskôr zadefinujeme premennú typu Osoba, ktorá bude objekt obsahovať. V tomto príklade sme to nazvali dave .
  2. Na druhej strane znamienka rovnosti voláme metódu konštruktora našej triedy Person a odovzdávame jej štyri reťazcové hodnoty. Naša metóda konštruktora prevezme tieto štyri hodnoty a nastaví počiatočný stav objektu Osoba na: firstName = 'Dave', lastName = 'Davidson', address = '12 Main St', username = 'DDavidson'.

Všimnite si, ako sme prešli na hlavnú triedu Java, aby sme zavolali objekt Person. Keď pracujete s objektmi, programy sa budú rozpínať viacero súborov .java . Uistite sa, že ste ich uložili do rovnakého priečinka. Ak chcete skompilovať a spustiť program, jednoducho skompilujte a spustite Java hlavná trieda súbor (t.j. PersonExample.java ). Kompilátor Java je dostatočne inteligentný na to, aby si uvedomil, že chcete kompilovať súbor Osoba.java súbor, pretože vidí, že ste ho použili v triede PersonExample.



Pomenovanie parametrov

Kompilátor Java je zmätený, ak parametre metódy konštruktora majú rovnaké názvy ako súkromné ​​polia. V tomto príklade môžete vidieť, že sme ich rozlíšili tak, že pred parametrami sme pridali slovo „osoba“. Stojí za zmienku, že existuje aj iný spôsob. Namiesto toho môžeme použiť kľúčové slovo „toto“:

|_+_||_+_|

Kľúčové slovo 'this' hovorí kompilátoru Java, že premenná, ktorej má byť priradená hodnota, je premenná definovaná triedou, nie parametrom. Je to otázka štýlu programovania, ale táto metóda nám pomáha definovať parametre konštruktora bez toho, aby sme museli používať viacero mien.



Viac ako jedna metóda konštruktéra

Pri navrhovaní tried objektov nie ste obmedzený na použitie iba jednej metódy konštruktora. Môžete sa rozhodnúť, že existuje niekoľko spôsobov, ako možno objekt inicializovať. Jediným obmedzením pri použití viac ako jednej metódy konštruktora je, že parametre sa musia líšiť.

Predstavte si, že v čase, keď vytvárame objekt Osoba, nemusíme poznať používateľské meno. Pridajme novú metódu konštruktora, ktorá nastaví stav objektu Osoba iba pomocou mena, priezviska a adresy:



|_+_||_+_|

Všimnite si, že druhá metóda konštruktora sa tiež nazýva 'Person' a tiež nevracia hodnotu. Jediný rozdiel medzi ňou a metódou prvého konštruktora sú parametre – tentoraz iba očakáva tri hodnoty reťazca: meno, priezvisko a adresa.

Teraz môžeme vytvárať objekty osoby dvoma rôznymi spôsobmi:

|_+_||_+_|

Osoba dave bude vytvorený s krstným menom, priezviskom, adresou a používateľským menom. Osoba jim, nezíska však používateľské meno, t. j. používateľské meno bude prázdny reťazec: používateľské meno = ''.

Rýchla rekapitulácia

Metódy konštruktora sa volajú iba vtedy, keď sa vytvorí nová inštancia objektu. Oni:

  • Musí mať rovnaký názov ako trieda
  • Nevracajte hodnotu
  • Môže mať žiadny, jeden alebo veľa parametrov
  • Môže číslovať viac ako jeden, pokiaľ má každá metóda konštruktora inú sadu parametrov
  • Môže mať názvy parametrov rovnaké ako súkromné ​​polia, pokiaľ sa použije kľúčové slovo „toto“.
  • Volajú sa pomocou kľúčového slova „nové“.