logo

Kodėl Java programoje naudojame konstruktorių?

Šiame skyriuje mes išmoksime kodėl Java programoje naudojame konstruktorių ir koks tikslas ir konstruktoriaus poreikis . Kartu su tuo pamatysime ir konstruktoriaus tipai.

Java programoje konstruktorius yra panašus į metodą. Konstruktoriaus savybė yra ta, kad jis turi turėti tokį patį pavadinimą kaip ir klasės pavadinimas. Jis neturi grąžinimo tipo. Mes neprivalome kviesti konstruktoriaus rankiniu būdu. Jis automatiškai netiesiogiai iškviečiamas egzistavimo metu.

Kitaip tariant, konstruktorius yra metodas, kuris iškviečiamas vykdymo metu objekto kūrimo metu naudojant naują operatorių. JVM jį iškviečia automatiškai, kai sukuriame objektą. Kai klasėje neapibrėžiame konstruktoriaus, numatytasis konstruktorius klasėje visada yra nepastebimai. Yra šios priežastys, kodėl verta naudoti konstruktorius:

  • Mes naudojame konstruktorius, kad inicijuotų objektą pagal numatytąją arba pradinę būseną. Numatytosios primityvų reikšmės gali būti ne tai, ko ieškote.
  • Kita priežastis naudoti konstruktorių yra ta, kad jis informuoja apie priklausomybes. Kitaip tariant, naudodami konstruktorių, galime paprašyti tos klasės vartotojo reikalingų priklausomybių.
  • Mes galime sužinoti, ko jai reikia norint naudoti šią klasę, tiesiog pažiūrėję į konstruktorių.

Trumpai tariant, mes naudojame konstruktorių inicijuokite klasės egzempliorių kintamąjį.

Konstruktorių tipai

„Java“ yra dviejų tipų konstruktoriai:

  • Parametrizuotas konstruktorius
  • Numatytasis konstruktorius

Parametrizuotas konstruktorius

Kaip rodo pavadinimas, jis priima argumentus (parametrus). Parametras konstruktorius naudojamas, jei norime dinamiškai inicijuoti egzempliorių kintamuosius su nurodytomis reikšmėmis egzistavimo metu.

Pavyzdys

 public class Demo { int i; //parameterized constructor public demo(int i) { this.i = i; } } 

Numatytasis konstruktorius

Numatytasis konstruktorius nepriima jokio parametro. Jis naudojamas, jei norime inicijuoti egzempliorių kintamuosius tam tikromis reikšmėmis. Kiekviena Java klasė turi numatytąjį konstruktorių, nepastebimai. Taigi, mums nereikia jo apibrėžti atskirai. Atminkite, kad numatytasis konstruktorius pašalinamas iš klasės, kai sukuriame parametrizuotą konstruktorių.

Pavyzdys

 public class Demo { int i; //default constructor public demo() { //the value of i is fixed this.i = 100; } } 

Pastaba: Kai Java programai nepateikiame konstruktoriaus, Java kompiliatorius programuotojo vardu įrašo numatytąjį konstruktorių ir sukompiliuoja programą. Jis inicijuoja egzempliorių kintamuosius su numatytosiomis reikšmėmis. Pavyzdžiui, 0 – sveikasis skaičius, 0,0 – float ir nulis – eilutė.

Sukurkime programą ir naudokime numatytąjį ir parametrizuotą konstruktorių.

Darbuotojų klasėje sukūrėme du konstruktorius, vienas yra numatytasis konstruktorius, o kitas yra parametrizuotas konstruktorius. Darbuotojų klasėje yra du privatūs kintamieji, būtent vardas ir amžius. Naudodami pagrindinį metodą, mes sukūrėme klasę ir panaudojome abu konstruktorius.

Darbuotojas.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(); } } 

Išvestis:

 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