logo

Dlaczego używamy konstruktora w Javie?

W tej części się dowiemy dlaczego używamy konstruktora w Javie I co jest celem I potrzeba konstruktora . Oprócz tego zobaczymy także typy konstruktorów.

W Javie tzw konstruktor jest podobny do metody. Właściwość konstruktora polega na tym, że musi on mieć taką samą nazwę jak nazwa klasy. Nie ma typu powrotu. Nie musimy wywoływać konstruktora ręcznie. Automatycznie wywołuje się niejawnie podczas tworzenia instancji.

Innymi słowy, konstruktor to metoda wywoływana w czasie wykonywania podczas tworzenia obiektu za pomocą operatora new. JVM wywołuje to automatycznie, gdy tworzymy obiekt. Jeżeli nie zdefiniujemy konstruktora w klasie, konstruktor domyślny jest zawsze niewidocznie obecny w klasie. Istnieją następujące powody, dla których warto używać konstruktorów:

  • Konstruktorów używamy do inicjowania obiektu stanem domyślnym lub początkowym. Domyślne wartości prymitywów mogą nie być tym, czego szukasz.
  • Innym powodem użycia konstruktora jest to, że informuje on o zależnościach. Innymi słowy, używając konstruktora, możemy poprosić użytkownika tej klasy o wymagane zależności.
  • Możemy dowiedzieć się, czego potrzebuje, aby móc korzystać z tej klasy, po prostu patrząc na konstruktora.

Krótko mówiąc, używamy konstruktora do zainicjuj zmienną instancji klasy.

Rodzaje konstruktorów

W Javie istnieją dwa typy konstruktorów:

  • Konstruktor parametryczny
  • Domyślny konstruktor

Konstruktor parametryczny

Jak sama nazwa wskazuje, akceptuje argumenty (parametry). Konstruktor sparametryzowany jest używany, jeśli chcemy dynamicznie inicjować zmienne instancji określonymi wartościami w momencie tworzenia instancji.

Przykład

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

Domyślny konstruktor

Konstruktor domyślny nie akceptuje żadnego parametru. Używa się go, jeśli chcemy zainicjować zmienne instancji określonymi wartościami. Każda klasa Java ma konstruktora domyślnego, w sposób niewidoczny. Nie musimy więc definiować tego osobno. Pamiętaj, że konstruktor domyślny jest usuwany z klasy, gdy tworzymy konstruktor sparametryzowany.

Przykład

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

Uwaga: Jeśli nie udostępnimy żadnego konstruktora dla programu Java, kompilator Java zapisuje domyślny konstruktor w imieniu programisty i kompiluje program. Inicjuje zmienne instancji wartościami domyślnymi. Na przykład 0 dla liczby całkowitej, 0,0 dla liczby zmiennoprzecinkowej i null dla ciągu.

Stwórzmy program i użyjmy domyślnego i sparametryzowanego konstruktora.

W klasie Pracownik utworzyliśmy dwa konstruktory, jeden jest konstruktorem domyślnym, a drugi jest konstruktorem sparametryzowanym. Klasa Pracownik ma dwie zmienne prywatne, a mianowicie imię i wiek. W metodzie głównej utworzyliśmy instancję klasy i użyliśmy obu konstruktorów.

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

Wyjście:

 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