logo

Proč používáme konstruktor v Javě?

V této části se naučíme proč používáme konstruktor v Javě a co je účel a potřeba konstruktéra . Spolu s tím uvidíme také typy konstruktoru.

V Javě, konstruktér je podobná metodě. Vlastností konstruktoru je, že musí mít stejný název jako název třídy. Nemá žádný návratový typ. Nepožadujeme volat konstruktor ručně. Automaticky implicitně volá během vytváření instance.

Jinými slovy, konstruktor je metoda, která se volá za běhu během vytváření objektu pomocí operátoru new. JVM jej volá automaticky, když vytváříme objekt. Když nedefinujeme konstruktor ve třídě, výchozí konstruktor je ve třídě vždy neviditelně přítomen. Existují následující důvody, proč používat konstruktory:

  • K inicializaci objektu s výchozím nebo počátečním stavem používáme konstruktory. Výchozí hodnoty pro primitiva nemusí být to, co hledáte.
  • Dalším důvodem pro použití konstruktoru je, že informuje o závislostech. Jinými slovy, pomocí konstruktoru můžeme požádat uživatele této třídy o požadované závislosti.
  • Můžeme zjistit, co potřebuje k použití této třídy, pouhým pohledem na konstruktor.

Stručně řečeno, používáme konstruktor inicializovat proměnnou instance třídy.

Typy konstruktérů

V Javě existují dva typy konstruktorů:

  • Parametrizovaný konstruktor
  • Výchozí konstruktor

Parametrizovaný konstruktor

Jak název napovídá, přijímá argumenty (parametry). Parametrizovaný konstruktor se používá, pokud chceme dynamicky inicializovat proměnné instance se zadanými hodnotami v okamžiku konkretizace.

Příklad

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

Výchozí konstruktor

Výchozí konstruktor nepřijímá žádný parametr. Používá se, pokud chceme inicializovat proměnné instance s určitými hodnotami. Každá třída Java má neviditelný výchozí konstruktor. Nemusíme to tedy definovat samostatně. Pamatujte, že výchozí konstruktor je z třídy odstraněn, když vytváříme parametrizovaný konstruktor.

Příklad

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

Poznámka: Když neposkytujeme programu Java žádný konstruktor, kompilátor Java zapíše jménem programátora výchozí konstruktor a zkompiluje program. Inicializuje proměnné instance s výchozími hodnotami. Například 0 pro celé číslo, 0,0 pro float a null pro String.

Vytvořme program a použijeme výchozí a parametrizovaný konstruktor.

Ve třídě Employee jsme vytvořili dva konstruktory, jeden je výchozí konstruktor a druhý je parametrizovaný konstruktor. Třída Zaměstnanec má dvě soukromé proměnné, jmenovitě jméno a věk. V hlavní metodě jsme vytvořili instanci třídy a použili oba konstruktory.

Employee.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ýstup:

 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