Java konstruktoriaus metodas

Sukurkite objektą naudodami „Java“ konstruktorių

Jaunas vyras naudoja savo nešiojamąjį kompiuterį bandydamas išspręsti kodo problemą

Emilija Manevska / Getty Images





„Java“ konstruktorius sukuria naują jau apibrėžto objekto egzempliorių. Šiame straipsnyje aptariama, kaip naudoti Java konstruktoriaus metodus kuriant asmens objektą.

Pastaba: Šiame pavyzdyje turite sukurti du failus tame pačiame aplanke: Asmuo.java apibrėžia Asmens klasę ir AsmuoPavyzdys.java yra pagrindinis metodas kuri kuria Asmens objektus.



Konstruktoriaus metodas

Pradėkime kurdami Asmens klasę, kurioje yra keturi privatūs laukai: vardas, pavardė, adresas ir vartotojo vardas. Šie laukai yra privatūs kintamieji ir kartu jų reikšmės sudaro objekto būseną. Taip pat pridėjome paprasčiausius konstruktoriaus metodus:

|_+_||_+_|

Konstruktorių metodas yra panašus į bet kurį kitą viešąjį metodą, išskyrus tai, kad jis turi tą patį pavadinimą kaip ir klasė, ir jis negali grąžinti reikšmės. Jis gali turėti ne vieną, vieną ar kelis parametrus.



Šiuo metu mūsų konstruktoriaus metodas visiškai nieko nedaro, todėl tinkamas laikas pagalvoti, ką tai reiškia pradinei asmens objekto būsenai. Jei palikome dalykus taip, kaip jie yra, arba neįtraukėme konstruktoriaus metodo į klasę Asmuo (in Java galite apibrėžti klasę be jos), tada laukai neturėtų jokių reikšmių – ir tikrai norime, kad mūsų asmuo turėtų vardą ir adresą bei kitas charakteristikas. Jei manote, kad yra tikimybė, kad jūsų objektas gali būti naudojamas ne taip, kaip tikitės, o laukai gali būti neinicializuoti, kai sukuriamas objektas, visada apibrėžkite juos naudodami numatytąją reikšmę:

|_+_||_+_|

Paprastai norėdami užtikrinti, kad konstruktoriaus metodas būtų naudingas, suprojektuotume jį atsižvelgiant į parametrus. Per šiuos parametrus perduodamos reikšmės gali būti naudojamos privačių laukų reikšmėms nustatyti:

|_+_||_+_|

Mūsų konstruktoriaus metodas dabar tikisi, kad jam bus perduotos keturių eilučių reikšmės. Tada jie naudojami pradinei objekto būsenai nustatyti. Taip pat pridėjome naują metodą, vadinamą displayPersonDetails() kad galėtume matyti objekto būseną jį sukūrus.

Konstruktoriaus metodo iškvietimas

Skirtingai nuo kitų objekto metodų, konstruktoriaus metodas turi būti iškviestas naudojant „new“ raktinį žodį:



|_+_||_+_|

Štai ką mes padarėme:

  1. Norėdami sukurti naują asmens objekto egzempliorių, pirmiausia apibrėžiame asmens tipo kintamąjį, kuris laikys objektą. Šiame pavyzdyje mes jį pavadinome Dave'as .
  2. Kitoje lygybės ženklo pusėje iškviečiame savo klasės Asmuo konstruktoriaus metodą ir perduodame jam keturias eilutės reikšmes. Mūsų konstruktoriaus metodas paims šias keturias reikšmes ir nustatys pradinę asmens objekto būseną: firstName = 'Dave'as, lastName = 'Davidson', address = '12 Main St', username = 'DDavidson'.

Atkreipkite dėmesį, kaip mes perjungėme į Java pagrindinę klasę, kad iškviestume objektą Asmuo. Kai dirbate su objektais, programos tęsis keli .java failai . Būtinai išsaugokite juos tame pačiame aplanke. Norėdami kompiliuoti ir paleisti programą, tiesiog sukompiliuokite ir paleiskite „Java“. pagrindinė klasė failą (t. y. AsmuoPavyzdys.java ). „Java“ kompiliatorius yra pakankamai protingas, kad suprastų, jog norite kompiliuoti Asmuo.java taip pat, nes mato, kad jį naudojote „PersonExample“ klasėje.



Parametrų įvardijimas

Java kompiliatorius susipainioja, jei konstruktoriaus metodo parametrai turi tokius pačius pavadinimus kaip ir privatūs laukai. Šiame pavyzdyje matote, kad mes juos atskyrėme prieš parametrus įrašydami žodį „asmuo“. Verta paminėti, kad yra ir kitas būdas. Vietoj to galime naudoti raktinį žodį „this“:

|_+_||_+_|

Raktinis žodis „this“ nurodo „Java“ kompiliatoriui, kad kintamasis, kuriam turi būti priskirta vertė, yra tas, kurį apibrėžia klasė, o ne parametras. Tai programavimo stiliaus klausimas, tačiau šis metodas padeda mums apibrėžti konstruktoriaus parametrus, nenaudojant kelių pavadinimų.



Daugiau nei vieno konstruktoriaus metodas

Kurdami objektų klases neapsiribojate tik vienu konstruktoriaus metodu. Galite nuspręsti, kad objektą galima inicijuoti keliais būdais. Vienintelis apribojimas naudojant daugiau nei vieną konstruktoriaus metodą yra tai, kad parametrai turi skirtis.

Įsivaizduokite, kad tuo metu, kai kuriame objektą Asmuo, galime nežinoti vartotojo vardo. Pridėkime naują konstruktoriaus metodą, kuris nustato asmens objekto būseną naudodamas tik vardą, pavardę ir adresą:



|_+_||_+_|

Atminkite, kad antrasis konstruktoriaus metodas taip pat vadinamas „asmeniu“ ir jis taip pat negrąžina reikšmės. Vienintelis skirtumas tarp jo ir pirmojo konstruktoriaus metodo yra parametrai – šį kartą tikimasi trys eilutės reikšmės: vardas, pavardė ir adresas.

Dabar asmens objektus galime kurti dviem skirtingais būdais:

|_+_||_+_|

Asmuo Dave'as bus sukurtas su vardu, pavarde, adresu ir vartotojo vardu. Asmuo Džimas, tačiau negaus vartotojo vardo, ty vartotojo vardas bus tuščia eilutė: vartotojo vardas = ''.

Greita santrauka

Konstruktorių metodai iškviečiami tik tada, kai sukuriamas naujas objekto egzempliorius. Jie:

  • Turi būti toks pat kaip ir klasės pavadinimas
  • Negrąžinkite vertės
  • Gali neturėti nė vieno, vieno arba daug parametrų
  • Galima sunumeruoti daugiau nei vieną, jei kiekvienas konstruktoriaus metodas turi skirtingą parametrų rinkinį
  • Gali turėti parametrų pavadinimai toks pat kaip ir privatūs laukai, kol naudojamas raktinis žodis „šis“.
  • Yra vadinami naudojant „naujas“ raktinį žodį