У овом одељку ћемо научити зашто користимо конструктор у Јави и Која је сврха и потреба конструктора . Уз ово, видећемо и типови конструктора.
У Јави, тхе конструктор је сличан методи. Својство конструктора је да мора имати исто име као и име класе. Нема тип повратка. Не захтевамо да ручно позивамо конструктор. Он се аутоматски позива имплицитно током инстанцирања.
Другим речима, конструктор је метод који се позива у време извођења током креирања објекта коришћењем оператора нев. ЈВМ га аутоматски позива када креирамо објекат. Када не дефинишемо конструктор у класи, подразумевани конструктор је увек невидљиво присутан у класи. Постоје следећи разлози за коришћење конструктора:
- Користимо конструкторе да иницијализујемо објекат са подразумеваним или почетним стањем. Подразумеване вредности за примитиве можда нису оно што тражите.
- Други разлог за коришћење конструктора је тај што он информише о зависностима. Другим речима, користећи конструктор, можемо да захтевамо од корисника те класе потребне зависности.
- Можемо сазнати шта је потребно да би се користила ова класа, само гледањем у конструктор.
Укратко, користимо конструктор за иницијализовати променљиву инстанце класе.
Врсте конструктора
Постоје две врсте конструктора у Јави:
шта је свн цхецкоут
- Параметризовани конструктор
- Подразумевани конструктор
Параметризовани конструктор
Као што име каже, прихвата аргументе (параметре). Параметаризовани конструктор се користи ако желимо да динамички иницијализујемо променљиве инстанце са наведеним вредностима у тренутку инстанцирања.
Пример
public class Demo { int i; //parameterized constructor public demo(int i) { this.i = i; } }
Подразумевани конструктор
Подразумевани конструктор не прихвата ниједан параметар. Користи се ако желимо да иницијализујемо променљиве инстанце одређеним вредностима. Свака Јава класа има подразумевани конструктор, невидљив. Дакле, не треба да га дефинишемо посебно. Запамтите да се подразумевани конструктор уклања из класе када креирамо параметризовани конструктор.
Пример
public class Demo { int i; //default constructor public demo() { //the value of i is fixed this.i = 100; } }
Напомена: Када не обезбедимо никакав конструктор за Јава програм, Јава компајлер пише подразумевани конструктор у име програмера и компајлира програм. Он иницијализује променљиве инстанце са подразумеваним вредностима. На пример, 0 за цео број, 0,0 за флоат и нулл за стринг.
Хајде да направимо програм и користимо подразумевани и параметризовани конструктор.
У класи Емплоиее, направили смо два конструктора, један је подразумевани конструктор, а други је параметризовани конструктор. Класа Емплоиее има две приватне варијабле, наиме, име и старост. У главном методу смо инстанцирали класу и користили оба конструктора.
линукс кодови грешака
Емплоиее.јава
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