logo

Защо използваме Constructor в Java?

В този раздел ще научим защо използваме конструктор в Java и какво е предложението и необходимост на конструктора . Заедно с това ще видим и видове конструктор.

В Java, конструктор е подобен на метода. Свойството на конструктора е, че той трябва да има същото име като името на класа. Няма тип връщане. Не изискваме ръчно извикване на конструктора. Той автоматично се извиква имплицитно по време на инстанцията.

С други думи, конструкторът е метод, който се извиква по време на изпълнение по време на създаването на обект с помощта на оператора new. JVM го извиква автоматично, когато създаваме обект. Когато не дефинираме конструктор в класа, конструкторът по подразбиране винаги присъства невидимо в класа. Има следните причини да използвате конструктори:

python нов ред
  • Ние използваме конструктори, за да инициализираме обекта със стандартното или първоначалното състояние. Стойностите по подразбиране за примитивите може да не са това, което търсите.
  • Друга причина да използвате конструктор е, че той информира за зависимости. С други думи, използвайки конструктора, можем да поискаме от потребителя на този клас необходимите зависимости.
  • Можем да разберем от какво се нуждае, за да използва този клас, просто като погледнем конструктора.

Накратко, ние използваме конструктора за инициализирайте променливата на екземпляра на класа.

Видове конструктори

В Java има два типа конструктори:

паралелна обработка
  • Параметризиран конструктор
  • Конструктор по подразбиране

Параметризиран конструктор

Както подсказва името, той приема аргументи (параметри). Параметризираният конструктор се използва, ако искаме динамично да инициализираме променливите на екземпляра с посочените стойности по време на инстанцирането.

Пример

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

Конструктор по подразбиране

Конструкторът по подразбиране не приема никакъв параметър. Използва се, ако искаме да инициализираме променливите на екземпляра с определени стойности. Всеки Java клас има невидим конструктор по подразбиране. Така че не е необходимо да го дефинираме отделно. Не забравяйте, че конструкторът по подразбиране се премахва от класа, когато създаваме параметризиран конструктор.

Пример

зададен в java
 public class Demo { int i; //default constructor public demo() { //the value of i is fixed this.i = 100; } } 

Забележка: Когато не предоставяме никакъв конструктор на Java програма, Java компилаторът записва конструктора по подразбиране от името на програмиста и компилира програмата. Той инициализира променливите на екземпляра със стойностите по подразбиране. Например, 0 за цяло число, 0.0 за плаващо число и нула за низ.

Нека създадем програма и използваме конструктора по подразбиране и с параметри.

В класа Employee създадохме два конструктора, единият е конструкторът по подразбиране, а другият е параметризираният конструктор. Класът 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(); } } 

Изход:

 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