- Врсте конструктора
- Преоптерећење конструктора
- Да ли конструктор враћа неку вредност?
- Копирање вредности једног објекта у други
- Да ли конструктор обавља друге задатке уместо иницијализације
Ин Јава , конструктор је блок кодова сличан методу. Позива се када је инстанца класа је створен. У тренутку позивања конструктора, меморија за објекат се додељује у меморији.
То је посебан тип метода који се користи за иницијализацију објекта.
Сваки пут када се објекат креира помоћу кључне речи нев(), позива се најмање један конструктор.
Позива подразумевани конструктор ако у класи није доступан конструктор. У том случају, Јава компајлер подразумевано обезбеђује подразумевани конструктор.
Постоје два типа конструктора у Јави: конструктор без аргумента и параметризовани конструктор.
Белешка: Зове се конструктор јер конструише вредности у време креирања објекта. Није неопходно писати конструктор за класу. То је зато што јава компајлер креира подразумевани конструктор ако га ваша класа нема.
Правила за креирање Јава конструктора
Постоје два правила дефинисана за конструктор.
бацање баца у јава
- Име конструктора мора бити исто као и име његове класе
- Конструктор не сме имати експлицитни тип повратка
- Јава конструктор не може бити апстрактан, статички, коначан и синхронизован
Напомена: можемо користити модификатори приступа док се декларише конструктор. Он контролише креирање објекта. Другим речима, можемо имати приватни, заштићени, јавни или подразумевани конструктор у Јави.
Врсте Јава конструктора
Постоје две врсте конструктора у Јави:
- Подразумевани конструктор (конструктор без аргумента)
- Параметризовани конструктор
Јава подразумевани конструктор
Конструктор се зове 'Подразумевани конструктор' када нема ниједан параметар.
Синтакса подразумеваног конструктора:
(){}
Пример подразумеваног конструктора
У овом примеру креирамо конструктор без аргумента у класи Бике. Биће позван у време креирања објекта. |
//Java Program to create and call a default constructor class Bike1{ //creating a default constructor Bike1(){System.out.println('Bike is created');} //main method public static void main(String args[]){ //calling a default constructor Bike1 b=new Bike1(); } }Тестирајте одмах
Излаз:
Bike is created
Правило: Ако у класи нема конструктора, компајлер аутоматски креира подразумевани конструктор.
П) Која је сврха подразумеваног конструктора?
Подразумевани конструктор се користи да обезбеди подразумеване вредности за објекат као што су 0, нулл, итд., у зависности од типа.
Пример подразумеваног конструктора који приказује подразумеване вредности
//Let us see another example of default constructor //which displays the default values class Student3{ int id; String name; //method to display the value of id and name void display(){System.out.println(id+' '+name);} public static void main(String args[]){ //creating objects Student3 s1=new Student3(); Student3 s2=new Student3(); //displaying values of the object s1.display(); s2.display(); } }Тестирајте одмах
Излаз:
0 null 0 null
Објашњење: У горњој класи, не креирате никакав конструктор, тако да вам компајлер даје подразумевани конструктор. Овде су 0 и нулл вредности обезбеђене подразумеваним конструктором.
Јава параметризовани конструктор
Конструктор који има одређени број параметара назива се параметризовани конструктор.
Зашто користити параметризовани конструктор?
Параметризовани конструктор се користи за обезбеђивање различитих вредности различитим објектима. Међутим, можете дати и исте вредности.
Пример параметризованог конструктора
У овом примеру смо креирали конструктор класе Студент који има два параметра. У конструктору можемо имати било који број параметара.
//Java Program to demonstrate the use of the parameterized constructor. class Student4{ int id; String name; //creating a parameterized constructor Student4(int i,String n){ id = i; name = n; } //method to display the values void display(){System.out.println(id+' '+name);} public static void main(String args[]){ //creating objects and passing values Student4 s1 = new Student4(111,'Karan'); Student4 s2 = new Student4(222,'Aryan'); //calling method to display the values of object s1.display(); s2.display(); } }Тестирајте одмах
Излаз:
111 Karan 222 Aryan
Преоптерећење конструктора у Јави
У Јави, конструктор је као метода, али без типа повратка. Такође се може преоптеретити као Јава методе.
Цонструцтор преоптерећење у Јави је техника која има више од једног конструктора са различитим листама параметара. Они су распоређени на начин да сваки конструктор обавља другачији задатак. Преводилац их разликује по броју параметара у листи и њиховим типовима.
Пример преоптерећења конструктора
//Java program to overload constructors class Student5{ int id; String name; int age; //creating two arg constructor Student5(int i,String n){ id = i; name = n; } //creating three arg constructor Student5(int i,String n,int a){ id = i; name = n; age=a; } void display(){System.out.println(id+' '+name+' '+age);} public static void main(String args[]){ Student5 s1 = new Student5(111,'Karan'); Student5 s2 = new Student5(222,'Aryan',25); s1.display(); s2.display(); } }Тестирајте одмах
Излаз:
111 Karan 0 222 Aryan 25
Разлика између конструктора и методе у Јави
Постоје многе разлике између конструктора и метода. Они су дати у наставку.
Јава Цонструцтор | Јава Метход |
---|---|
Конструктор се користи за иницијализацију стања објекта. | Метода се користи за откривање понашања објекта. |
Конструктор не сме да има тип враћања. | Метода мора имати тип враћања. |
Конструктор се позива имплицитно. | Метод се експлицитно позива. |
Јава компајлер обезбеђује подразумевани конструктор ако немате ниједан конструктор у класи. | Метод ни у ком случају не обезбеђује компајлер. |
Име конструктора мора бити исто као и име класе. | Име методе може или не мора бити исто као име класе. |
Јава Цопи Цонструцтор
У Јави не постоји конструктор копирања. Међутим, можемо копирати вредности из једног објекта у други као конструктор копирања у Ц++.
Постоји много начина за копирање вредности једног објекта у други у Јави. Су:
- По конструктору
- Додељивањем вредности једног објекта другом
- Методом цлоне() класе Објецт
У овом примеру ћемо копирати вредности једног објекта у други користећи Јава конструктор.
//Java program to initialize the values from one object to another object. class Student6{ int id; String name; //constructor to initialize integer and string Student6(int i,String n){ id = i; name = n; } //constructor to initialize another object Student6(Student6 s){ id = s.id; name =s.name; } void display(){System.out.println(id+' '+name);} public static void main(String args[]){ Student6 s1 = new Student6(111,'Karan'); Student6 s2 = new Student6(s1); s1.display(); s2.display(); } }Тестирајте одмах
Излаз:
111 Karan 111 Karan
Копирање вредности без конструктора
Можемо копирати вредности једног објекта у други тако што ћемо доделити вредности објеката другом објекту. У овом случају, нема потребе за креирањем конструктора.
class Student7{ int id; String name; Student7(int i,String n){ id = i; name = n; } Student7(){} void display(){System.out.println(id+' '+name);} public static void main(String args[]){ Student7 s1 = new Student7(111,'Karan'); Student7 s2 = new Student7(); s2.id=s1.id; s2.name=s1.name; s1.display(); s2.display(); } }Тестирајте одмах
Излаз:
111 Karan 111 Karan
П) Да ли конструктор враћа неку вредност?
Да, то је тренутна инстанца класе (не можете користити тип враћања, али он враћа вредност).
Може ли конструктор да обавља друге задатке уместо иницијализације?
Да, као што је креирање објеката, покретање нити, позивање методе, итд. Можете извршити било коју операцију у конструктору као што изводите у методи.
јава листбок
Да ли постоји класа Цонструцтор у Јави?
Да.
Која је сврха класе Конструктор?
Јава пружа класу Цонструцтор која се може користити за добијање интерних информација о конструктору у класи. Налази се у пакету јава.ланг.рефлецт.