Java konstruktorite kasutamine: lihtne juhis

Java-konstruktor loob juba määratletud objekti uue eksemplari. Selles artiklis käsitletakse Java-konstruktori meetodite kasutamist objekti Objekti loomiseks.

Märge: Selle näite jaoks peate looma samasse kausta kaks faili: Isik.java määratleb Isikuklassi ja PersonExample.java sisaldab peamine meetod mis loob Isiku objekte.

Konstruktori meetod

Alustame isikuklassi loomisega, millel on neli privaatset välja: eesnimi, perekonnanimi, aadress ja kasutajanimi. Need väljad on privaatsed muutujad ja koos moodustavad nende väärtused objekti oleku. Oleme lisanud ka kõige lihtsamad konstruktorimeetodid:

 avaliku klassi inimene {
privaatne string eesnimi;
privaatne Stringi perekonnanimi;
privaatne Stringi aadress;
privaatne Stringi kasutajanimi;
// Konstruktori meetod
avalik isik ()
{
}
}

Ehitaja meetod sarnaneb kõigi muude avalike meetoditega, välja arvatud see, et sellel on sama nimi kui klassil ja see ei saa väärtust tagastada. Sellel võib olla üks, üks või mitu parameetrit.

Praegu ei tee meie konstruktorimeetod midagi ja on hea aeg mõelda, mida see tähendab objekti Isiklik algseisund jaoks. Kui jätsime asjad selliseks, nagu nad on, või ei lisanud me oma isikuklassi konstruktorimeetodit (in

instagram viewer
Java võite määratleda klassi ilma üheta), siis pole väljadel väärtusi - ja me kindlasti soovime, et meie inimesel oleks nimi ja aadress ning muud omadused. Kui arvate, et on tõenäoline, et teie eset ei kasutata nii, nagu arvatakse, ja väljade vormistamisel ei pruugi seda luua, määratlege need alati vaikeväärtusega:

 avaliku klassi inimene {
privaatne string firstName = "";
privaatne string lastName = "";
privaatne stringi aadress = "";
privaatne stringi kasutajanimi = "";
// Konstruktori meetod
avalik isik ()
{
}
}

Tavaliselt kavandaksime konstruktorimeetodi kasulikkuse tagamiseks parameetrite ootusi. Nendest parameetritest läbitud väärtusi saab kasutada privaatsete väljade väärtuste seadmiseks:

 avaliku klassi inimene {
privaatne string eesnimi;
privaatne Stringi perekonnanimi;
privaatne Stringi aadress;
privaatne Stringi kasutajanimi;
// Konstruktori meetod
avalik inimene (String person eesnimi, string personLastNimi, String personAadress, String personKasanimi)
{
firstName = personFirstName;
lastName = personLastName;
aadress = personAddress;
kasutajanimi = personUsername;
}
// Meetod objekti oleku kuvamiseks ekraanile
avalik tühine kuvaPersonDetails ()
{
System.out.println ("Nimi:" + eesnimi + "" + perekonnanimi);
System.out.println ("Aadress:" + aadress);
System.out.println ("Kasutajanimi:" + kasutajanimi);
}
}

Meie konstruktorimeetod eeldab nüüd nelja stringi väärtuste ülekandmist sellele. Seejärel kasutatakse neid objekti algse oleku määramiseks. Oleme lisanud ka uue meetodi nimega displayPersonDetails () et saaksime näha objekti olekut pärast selle loomist.

Ehitaja meetodi kutsumine

Erinevalt objekti teistest meetoditest tuleb konstruktorimeetodit kutsuda märksõnaga "uus":

 avalik klass PersonExample {
avalik staatiline tühine pea (string [] args) {
Person dave = uus inimene ("Dave", "Davidson", "12 Main St.", "DDavidson");
dave.displayPersonDetails ();
}
}

Me tegime järgmist:

  1. Objekti Isik uue eksemplari loomiseks määratleme kõigepealt muutuja tüüpi Isik, mis objekti hoiab. Selles näites oleme seda nimetanud dave.
  2. Teisel pool võrdusmärki kutsume oma Isiku klassi konstruktorimeetodiks ja anname sellele neli stringi väärtust. Meie konstruktorimeetod võtab need neli väärtust ja seab objekti Objekti algseisundiks järgmised: firstName = "Dave", lastName = "Davidson", address = "12 Main St", kasutajanimi = "DDavidson".

Pange tähele, kuidas oleme lülitunud Java põhiklassi, et helistada objektile Isik. Objektidega töötades jäävad programmid vahemikku mitu .java-faili. Salvestage need kindlasti samasse kausta. Programmi kompileerimiseks ja käivitamiseks lihtsalt kompileerige ja käivitage Java põhiklass fail (st PersonExample.java). Java kompilaator on piisavalt nutikas, et mõista, et soovite selle kompileerida Isik.java faili ka seetõttu, et on näha, et olete seda kasutanud klassis PersonExample.

Parameetrite nimetamine

Java kompilaator läheb segadusse, kui konstruktorimeetodi parameetritel on samad nimed kui privaatsetel väljadel. Selles näites näete, et oleme nende vahel vahet teinud, prefikseerides parameetrid sõnaga "inimene". Väärib märkimist, et on ka teine ​​võimalus. Võime selle asemel kasutada märksõna "see":

 // Konstruktori meetod
avalik isik (Stringi eesnimi, stringi perekonnanimi, stringi aadress, stringi kasutajanimi)
{
this.firstName = eesnimi;
this.lastName = lastName;
see.aadress = aadress;
this.username = kasutajanimi;
}

Märksõna "see" ütleb Java kompilaatorile, et muutuja, millele väärtust omistatakse, on see, mis on määratletud klassi, mitte parameeter. See on programmeerimisstiili küsimus, kuid see meetod aitab meil määratleda konstrukatori parameetreid ilma, et peaksime kasutama mitut nime.

Rohkem kui üks konstruktorimeetod

Objektiklasside kujundamisel ei piirdu te ainult ühe konstruktorimeetodi kasutamisega. Võite otsustada, et objekti saab lähtestada kahel viisil. Mitme konstruktorimeetodi kasutamise ainus piirang on see, et parameetrid peavad erinema.

Kujutage ette, et ajal, mil loome objekti Isik, ei pruugi me teada kasutajanime. Lisame uue konstruktorimeetodi, mis seab objekti Isik oleku, kasutades ainult eesnime, perekonnanime ja aadressi:

 avaliku klassi inimene {
privaatne string eesnimi;
privaatne Stringi perekonnanimi;
privaatne Stringi aadress;
privaatne Stringi kasutajanimi;
// Konstruktori meetod
avalik isik (Stringi eesnimi, stringi perekonnanimi, stringi aadress, stringi kasutajanimi)
{
this.firstName = eesnimi;
this.lastName = lastName;
see.aadress = aadress;
this.username = kasutajanimi;
}
// Uus konstruktori meetod
avalik isik (stringi eesnimi, string perekonnanimi, stringi aadress)
{
this.firstName = eesnimi;
this.lastName = lastName;
see.aadress = aadress;
this.username = "";
}
// Meetod objekti oleku kuvamiseks ekraanile
avalik tühine kuvaPersonDetails ()
{
System.out.println ("Nimi:" + eesnimi + "" + perekonnanimi);
System.out.println ("Aadress:" + aadress);
System.out.println ("Kasutajanimi:" + kasutajanimi);
}
}

Pange tähele, et teist konstruktori meetodit nimetatakse ka "Isik" ja see ei anna ka väärtust. Ainus erinevus selle ja esimese konstruktorimeetodi vahel on parameetrid - seekord loodetakse seda ainult kolm stringi väärtused: eesnimi, perekonnanimi ja aadress.

Nüüd saame luua Isiku objekte kahel erineval viisil:

 avalik klass PersonExample {
avalik staatiline tühine pea (string [] args) {
Person dave = uus inimene ("Dave", "Davidson", "12 Main St.", "DDavidson");
Isik jim = uus inimene ("Jim", "Davidson", "15 Kings Road");
dave.displayPersonDetails ();
jim.displayPersonDetails ();
}
}

Isik dave luuakse eesnime, perekonnanime, aadressi ja kasutajanimega. Isik jim, aga kasutajanime ei saa, s.t kasutajanimi on tühi string: kasutajanimi = "".

Kiire kokkuvõte

Konstruktorimeetodeid kutsutakse ainult siis, kui luuakse objekti uus eksemplar. Nad:

  • Peab olema klassiga sama nimi
  • Ärge tagastage väärtust
  • Ei saa olla ühtegi, ühte ega palju parameetreid
  • Võib nummerdada rohkem kui ühte, kui igal konstruktorimeetodil on erinev parameetrite komplekt
  • Võib olla parameetrite nimed sama mis privaatväljad, kui kasutatakse märksõna "see"
  • Neid nimetatakse märksõnaga "uus"
instagram story viewer