Un constructor Java creează o nouă instanță a unui obiect deja definit. Acest articol discută despre modul de utilizare a metodelor constructor Java pentru a crea un obiect Persoană.
Notă: Pentru acest exemplu, trebuie să creați două fișiere în același folder: Person.java definește clasa Persoană și PersonExample.java conține metoda principală care creează obiecte Persoana.
Să începem prin crearea unei clase de persoană care are patru câmpuri private: prenumele, prenumele, adresa și numele de utilizator. Aceste câmpuri sunt variabile private și împreună valorile lor alcătuiesc starea unui obiect. Am adăugat, de asemenea, cea mai simplă metodă de constructor:
public class Persoană
private String FirstName;
private String lastName;
adresă privată String;
nume de utilizator private String;
// Metoda constructorului
persoană publică ()
Metoda constructorului este similară cu oricare altă metodă publică, cu excepția faptului că are același nume ca și clasa și nu poate returna o valoare. Nu poate avea niciunul, unul sau mai mulți parametri.
În prezent, metoda noastră de constructor nu face nimic deloc și este un moment bun pentru a analiza ce înseamnă acest lucru pentru starea inițială a obiectului Persoană. Dacă am lăsat lucrurile așa cum sunt sau nu am include o metodă de constructor în clasa noastră Persoană (în Java puteți defini o clasă fără una), atunci câmpurile nu vor avea valori - și cu siguranță dorim ca persoana noastră să aibă un nume și adresa, precum și alte caracteristici. Dacă credeți că există șansa ca obiectul dvs. să nu poată fi utilizat așa cum vă așteptați și câmpurile ar putea să nu fie inițializate la crearea obiectului, definiți-le întotdeauna cu o valoare implicită:
public class Persoană
private String firstName = "";
private String lastName = "";
private String address = "";
private String username = "";
// Metoda constructorului
persoană publică ()
În mod normal, pentru a ne asigura că o metodă de constructor este utilă, am proiecta-o pentru a se aștepta parametrii. Valorile trecute prin acești parametri pot fi utilizate pentru a seta valorile câmpurilor private:
public class Persoană
private String FirstName;
private String lastName;
adresă privată String;
nume de utilizator private String;
// Metoda constructorului
public Person (String personPrimname, String personLastName, String personAddress, String personUername name)
firstName = persoanaFirstName;
lastName = personLastName;
adresa = persoana Adresa;
nume utilizator = personUsername;
// O metodă pentru a afișa starea obiectului pe ecran
public void displayPersonDetails ()
System.out.println ("Nume:" + prenume + "" + ultimul nume);
System.out.println ("Adresă:" + adresă);
System.out.println ("Username:" + nume de utilizator);
Metoda noastră de constructor se așteaptă acum la valorile a patru șiruri. Acestea sunt apoi utilizate pentru a seta starea inițială a obiectului. Am adăugat și o nouă metodă numită displayPersonDetails () pentru a ne permite să vedem starea obiectului după ce a fost creat.
Spre deosebire de alte metode ale unui obiect, metoda constructorului trebuie apelată folosind cuvântul cheie „nou”:
public class PersonExemple
public static void main (String [] args)
Person dave = Persoană nouă („Dave”, „Davidson”, „12 Main St.”, „DDavidson”);
dave.displayPersonDetails ();
Iată ce am făcut:
Observați cum am trecut la clasa principală Java pentru a apela obiectul Persoană. Când lucrați cu obiecte, programele vor cuprinde mai multe fișiere .java. Asigurați-vă că le salvați în același dosar. Pentru a compila și rula programul, pur și simplu compilați și executați fișierul clasei principale Java (adică., PersonExample.java). Compilatorul Java este suficient de inteligent pentru a realiza că doriți să compilați Person.java de asemenea, pentru că se poate vedea că l-ai folosit în clasa PersonExample.
Compilatorul Java se confundă dacă parametrii metodei constructorului au aceleași nume ca și câmpurile private. În acest exemplu, puteți vedea că am făcut distincție între ei prin prefixarea parametrilor cu cuvântul „persoană”. Merită menționat că există un alt mod. În schimb, putem utiliza cuvântul cheie „acest”:
// Metoda constructorului
Public Person (String firstName, String lastName, String address, String username)
this.firstName = prenumele;
this.lastName = lastName;
this.address = adresa;
this.username = nume de utilizator;
Cuvântul cheie „acest” spune compilatorului Java că variabila care i se atribuie valoarea este cea definită de clasă, nu parametrul. Este o problemă de stil de programare, dar această metodă ne ajută să definim parametrii constructorului fără a fi nevoie să folosim mai multe nume.
Când proiectați clase de obiecte, nu vă limitați să utilizați o singură metodă de constructor. Ați putea decide că există câteva moduri în care un obiect poate fi inițializat. Singura constrângere în utilizarea mai multor metode de constructor este aceea că parametrii trebuie să difere.
Imaginează-ți că la momentul creării obiectului Persoana, s-ar putea să nu cunoaștem numele de utilizator. Să adăugăm o nouă metodă de constructor care stabilește starea obiectului Persoană folosind doar prenumele, ultimul nume și adresa:
public class Persoană
private String FirstName;
private String lastName;
adresă privată String;
nume de utilizator private String;
// Metoda constructorului
Public Person (String firstName, String lastName, String address, String username)
this.firstName = prenumele;
this.lastName = lastName;
this.address = adresa;
this.username = nume de utilizator;
// Noua metodă de constructor
Public Person (String firstName, String lastName, String address)
this.firstName = prenumele;
this.lastName = lastName;
this.address = adresa;
this.username = "";
// O metodă pentru a afișa starea obiectului pe ecran
public void displayPersonDetails ()
System.out.println ("Nume:" + prenume + "" + ultimul nume);
System.out.println ("Adresă:" + adresă);
System.out.println ("Username:" + nume de utilizator);
Rețineți că a doua metodă de constructor se mai numește „Persoană” și, de asemenea, nu returnează o valoare. Singura diferență între aceasta și metoda primului constructor este parametrii - de data aceasta se așteaptă doar Trei valori de șir: prenumele, prenumele și adresa.
Acum putem crea obiecte Persoană în două moduri diferite:
public class PersonExemple
public static void main (String [] args)
Person dave = Persoană nouă („Dave”, „Davidson”, „12 Main St.”, „DDavidson”);
Persoana jim = Persoană nouă („Jim”, „Davidson”, „15 Kings Road”);
dave.displayPersonDetails ();
jim.displayPersonDetails ();
Persoană dave va fi creat cu un nume, prenume, adresă și nume de utilizator. Persoană jim, cu toate acestea, nu va primi un nume de utilizator, adică numele de utilizator va fi șirul gol: username = "".
Metodele constructorului sunt numite numai atunci când este creată o nouă instanță a unui obiect. Ei: