logo

Prečo používame Constructor v Jave?

V tejto časti sa naučíme prečo používame konštruktor v Jave a aký je účel a potreba konštruktéra . Spolu s tým uvidíme aj typy konštruktéra.

V Jave, konštruktér je podobná metóde. Vlastnosťou konštruktora je, že musí mať rovnaký názov ako názov triedy. Nemá návratový typ. Nepotrebujeme volať konštruktor manuálne. Automaticky implicitne vyvoláva počas vytvárania inštancií.

Inými slovami, konštruktor je metóda, ktorá sa volá za behu počas vytvárania objektu pomocou operátora new. JVM ho volá automaticky, keď vytvoríme objekt. Keď v triede nedefinujeme konštruktor, predvolený konštruktor je v triede vždy neviditeľne prítomný. Existujú nasledujúce dôvody na použitie konštruktérov:

  • Na inicializáciu objektu s predvoleným alebo počiatočným stavom používame konštruktory. Predvolené hodnoty pre primitíva nemusia byť to, čo hľadáte.
  • Ďalším dôvodom na použitie konštruktora je, že informuje o závislostiach. Inými slovami, pomocou konštruktora môžeme požiadať používateľa tejto triedy o požadované závislosti.
  • Môžeme zistiť, čo potrebuje na použitie tejto triedy, jednoduchým pohľadom na konštruktor.

Stručne povedané, používame konštruktor na inicializujte premennú inštancie triedy.

Typy konštruktérov

V Jave sú dva typy konštruktorov:

  • Parametrizovaný konštruktor
  • Predvolený konštruktor

Parametrizovaný konštruktor

Ako už názov napovedá, prijíma argumenty (parametre). Parametrizovaný konštruktor sa používa, ak chceme dynamicky inicializovať premenné inštancie so zadanými hodnotami v čase inštancie.

Príklad

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

Predvolený konštruktor

Predvolený konštruktor neakceptuje žiadny parameter. Používa sa, ak chceme inicializovať premenné inštancie s určitými hodnotami. Každá trieda Java má neviditeľný predvolený konštruktor. Nemusíme to teda definovať samostatne. Pamätajte, že predvolený konštruktor sa z triedy odstráni, keď vytvoríme parametrizovaný konštruktor.

Príklad

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

Poznámka: Keď neposkytujeme programu Java žiadny konštruktor, kompilátor Java napíše predvolený konštruktor v mene programátora a skompiluje program. Inicializuje premenné inštancie s predvolenými hodnotami. Napríklad 0 pre celé číslo, 0,0 pre float a null pre reťazec.

Vytvorme program a použijeme predvolený a parametrizovaný konštruktor.

V triede Zamestnanec sme vytvorili dva konštruktory, jeden je predvolený a druhý je parametrizovaný. Trieda Zamestnanec má dve súkromné ​​premenné, a to meno a vek. V hlavnej metóde sme vytvorili inštanciu triedy a použili sme oba konštruktory.

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

Výkon:

 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