Metoda Java Constructor
Ustvarite predmet s konstruktorjem Java
Emilija Manevska / Getty Images
Konstruktor Java ustvari nov primerek že definiranega predmeta. Ta članek obravnava, kako uporabiti metode konstruktorja Java za ustvarjanje objekta Person.
Opomba: Za ta primer morate ustvariti dve datoteki v isti mapi: Oseba.java definira razred osebe in PersonExample.java vsebuje glavna metoda ki ustvarja objekte Person.
Metoda konstruktorja
Začnimo z ustvarjanjem razreda Person, ki ima štiri zasebna polja: ime, priimek, naslov in uporabniško ime. Ta polja so zasebne spremenljivke in njihove vrednosti skupaj sestavljajo stanje objekta. Dodali smo tudi najpreprostejše metode konstruktorja:
|_+_||_+_|Metoda konstruktorja je podobna kateri koli drugi javni metodi, le da ima isto ime kot razred in ne more vrniti vrednosti. Lahko nima nobenega, enega ali več parametrov.
Trenutno naša metoda konstruktorja ne naredi ničesar in pravi čas je, da razmislimo, kaj to pomeni za začetno stanje objekta Person. Če smo pustili stvari takšne, kot so, ali nismo vključili metode konstruktorja v naš razred Person (v Java lahko definirate razred brez njega), potem polja ne bi imela nobenih vrednosti — in vsekakor želimo, da ima naša oseba ime in naslov ter druge značilnosti. Če menite, da obstaja možnost, da se vaš predmet ne bo uporabljal, kot ste pričakovali, in polja morda ne bodo inicializirana, ko je predmet ustvarjen, jih vedno definirajte s privzeto vrednostjo:
|_+_||_+_|Da bi zagotovili, da je metoda konstruktorja uporabna, bi jo običajno oblikovali tako, da pričakuje parametre. Vrednosti, posredovane skozi te parametre, se lahko uporabijo za nastavitev vrednosti zasebnih polj:
|_+_||_+_|Naša metoda konstruktorja zdaj pričakuje, da se ji posredujejo vrednosti štirih nizov. Nato se uporabijo za nastavitev začetnega stanja predmeta. Dodali smo tudi novo metodo, imenovano displayPersonDetails() da lahko vidimo stanje predmeta po tem, ko je bil ustvarjen.
Klicanje metode konstruktorja
Za razliko od drugih metod objekta je treba metodo konstruktorja poklicati s ključno besedo 'new':
|_+_||_+_|
Evo, kaj smo storili:
- Če želite ustvariti nov primerek objekta Person, najprej definiramo spremenljivko tipa Person, ki bo vsebovala objekt. V tem primeru smo ga poklicali dave .
- Na drugi strani znaka enačaja pokličemo metodo konstruktorja našega razreda Person in ji posredujemo štiri vrednosti niza. Naša metoda konstruktorja bo prevzela te štiri vrednosti in nastavila začetno stanje objekta Person na: firstName = 'Dave', lastName = 'Davidson', naslov = '12 Main St', uporabniško ime = 'DDavidson'.
Opazite, kako smo preklopili na glavni razred Jave za klic objekta Person. Ko delate s predmeti, se programi raztezajo več datotek .java . Poskrbite, da jih shranite v isto mapo. Za prevajanje in zagon programa preprosto prevedite in zaženite Javo glavni razred datoteka (tj. PersonExample.java ). Prevajalnik Java je dovolj pameten, da ugotovi, da želite prevesti Oseba.java ker lahko vidi, da ste jo uporabili v razredu PersonExample.
Poimenovanje parametrov
Prevajalnik Java se zmede, če imajo parametri metode konstruktorja enaka imena kot zasebna polja. V tem primeru lahko vidite, da smo jih razlikovali tako, da smo pred parametre dodali besedo 'oseba'. Omeniti velja, da obstaja še en način. Namesto tega lahko uporabimo ključno besedo 'ta':
|_+_||_+_|Ključna beseda 'this' pove prevajalniku Java, da je spremenljivka, ki ji je treba dodeliti vrednost, tista, ki jo definira razred, in ne parameter. To je vprašanje sloga programiranja, vendar nam ta metoda pomaga definirati parametre konstruktorja, ne da bi morali uporabiti več imen.
Več kot ena metoda konstruktorja
Pri načrtovanju vaših objektnih razredov niste omejeni na uporabo samo ene metode konstruktorja. Lahko se odločite, da obstaja nekaj načinov za inicializacijo objekta. Edina omejitev pri uporabi več kot ene metode konstruktorja je, da se morajo parametri razlikovati.
Predstavljajte si, da v času, ko ustvarjamo objekt Person, morda ne poznamo uporabniškega imena. Dodajmo novo metodo konstruktorja, ki nastavi stanje objekta Person samo z uporabo FirstName, LastName in naslova:
|_+_||_+_|
Upoštevajte, da se druga metoda konstruktorja imenuje tudi 'Person' in prav tako ne vrne vrednosti. Edina razlika med njo in prvo metodo konstruktorja so parametri – tokrat pričakuje le tri vrednosti niza: ime, priimek in naslov.
Zdaj lahko ustvarimo objekte Person na dva različna načina:
|_+_||_+_|Oseba dave bo ustvarjen z imenom, priimkom, naslovom in uporabniškim imenom. Oseba jim, vendar ne bo dobil uporabniškega imena, tj. uporabniško ime bo prazen niz: uporabniško ime = ''.
Kratek povzetek
Metode konstruktorja se kličejo samo, ko je ustvarjen nov primerek predmeta. Oni:
- Imeti mora isto ime kot razred
- Ne vrni vrednosti
- Lahko nima nobenega, enega ali veliko parametrov
- Lahko šteje več kot eno, če ima vsaka metoda konstruktorja drugačen niz parametrov
- Lahko ima imena parametrov enako kot zasebna polja, če je uporabljena ključna beseda 'ta'
- Pokličejo se s ključno besedo 'novo'