În această secțiune, vom învăța de ce folosim un constructor în Java și care este scopul și nevoia constructorului . Alături de aceasta, vom vedea și tipuri de constructor.
În Java, constructor este similar cu metoda. Proprietatea constructorului este că trebuie să aibă același nume ca și numele clasei. Nu are niciun tip de returnare. Nu este nevoie să apelăm manual constructorul. Se invocă automat implicit în timpul instanțiării.
Cu alte cuvinte, un constructor este o metodă care este apelată în timpul execuției în timpul creării obiectului folosind operatorul nou. JVM-ul îl apelează automat când creăm un obiect. Când nu definim un constructor în clasă, constructorul implicit este întotdeauna prezent invizibil în clasă. Există următoarele motive pentru a utiliza constructori:
- Folosim constructori pentru a inițializa obiectul cu starea implicită sau inițială. Este posibil ca valorile implicite pentru primitive să nu fie ceea ce căutați.
- Un alt motiv pentru a folosi constructorul este că informează despre dependențe. Cu alte cuvinte, folosind constructorul, putem solicita utilizatorului acelei clase dependențele necesare.
- Putem afla de ce are nevoie pentru a utiliza această clasă, doar uitându-ne la constructor.
Pe scurt, folosim constructorul pentru inițializați variabila de instanță a clasei.
Tipuri de constructori
Există două tipuri de constructori în Java:
- Constructor parametrizat
- Constructor implicit
Constructor parametrizat
După cum sugerează și numele, acceptă argumente (parametri). Constructorul parametrizat este folosit dacă dorim să inițializam dinamic variabilele de instanță cu valorile specificate la momentul instanțierii.
Exemplu
public class Demo { int i; //parameterized constructor public demo(int i) { this.i = i; } }
Constructor implicit
Constructorul implicit nu acceptă niciun parametru. Este folosit dacă dorim să inițializam variabilele de instanță cu anumite valori. Fiecare clasă Java are un constructor implicit, invizibil. Deci, nu trebuie să-l definim, separat. Amintiți-vă că constructorul implicit este eliminat din clasă atunci când creăm un constructor parametrizat.
Exemplu
public class Demo { int i; //default constructor public demo() { //the value of i is fixed this.i = 100; } }
Notă: Când nu oferim niciun constructor unui program Java, compilatorul Java scrie constructorul implicit în numele programatorului și compilează programul. Inițializează variabilele de instanță cu valorile implicite. De exemplu, 0 pentru întreg, 0,0 pentru float și null pentru String.
Să creăm un program și să folosim constructorul implicit și parametrizat.
În clasa Employee, am creat doi constructori, unul este constructorul implicit și celălalt este constructorul parametrizat. Clasa Angajat are două variabile private și anume, numele și vârsta. În metoda principală, am instanțiat clasa și am folosit ambii constructori.
Angajat.java
import java.util.Scanner; public class Employee { private String name; private int age; //parameterized constructor public Employee(String name, int age) { this.name =name; this.age = age; } //Default constructor public Employee() { this.name = 'William'; this.age = 28; } //method for printing the values public void show() { System.out.println('Name of the employee: '+this.name); System.out.println('Age of the employee: '+this.age); } //main method public static void main(String args[]) { Employee e=new Employee(); //Reading values from user Scanner sc = new Scanner(System.in); System.out.println('Enter the name of the employee: '); String name = sc.nextLine(); System.out.println('Enter the age of the employee: '); int age = sc.nextInt(); System.out.println(' '); //Calling the parameterized constructor System.out.println('Show() method for the parameterized constructor: '); new Employee(name, age).show(); //Calling the default constructor System.out.println('Show() method for the default constructor: '); new Employee().show(); } }
Ieșire:
Enter the name of the employee: David Enter the age of the employee: 27 Show() method for the parameterized constructor: Name of the employee: David Age of the employee: 27 Show() method for the default constructor: Name of the employee: William Age of the employee: 28