- Konstruktoru veidi
- Konstruktora pārslodze
- Vai konstruktors atgriež kādu vērtību?
- Viena objekta vērtību kopēšana citā
- Vai konstruktors inicializācijas vietā veic citus uzdevumus
In Java , konstruktors ir metodei līdzīgs kodu bloks. To sauc, ja instancē klasē ir izveidots. Konstruktora izsaukšanas brīdī atmiņā tiek iedalīta objekta atmiņa.
Tas ir īpašs metodes veids, ko izmanto objekta inicializācijai.
Katru reizi, kad objekts tiek izveidots, izmantojot atslēgvārdu new(), tiek izsaukts vismaz viens konstruktors.
Tas izsauc noklusējuma konstruktoru, ja klasē nav pieejams konstruktors. Šādā gadījumā Java kompilators pēc noklusējuma nodrošina noklusējuma konstruktoru.
Java ir divu veidu konstruktori: no-arg konstruktors un parametrizētais konstruktors.
Piezīme: To sauc par konstruktoru, jo tas konstruē vērtības objekta izveides laikā. Nav obligāti jāraksta klases konstruktors. Tas ir tāpēc, ka java kompilators izveido noklusējuma konstruktoru, ja jūsu klasei tāda nav.
Java konstruktora izveides noteikumi
Konstruktoram ir definēti divi noteikumi.
salīdziniet virknē
- Konstruktora nosaukumam ir jābūt tādam pašam kā klases nosaukumam
- Konstruktoram nedrīkst būt precīzs atgriešanas veids
- Java konstruktors nevar būt abstrakts, statisks, galīgs un sinhronizēts
Piezīme: mēs varam izmantot piekļuves modifikatori vienlaikus deklarējot konstruktoru. Tas kontrolē objekta izveidi. Citiem vārdiem sakot, mums var būt privāts, aizsargāts, publisks vai noklusējuma konstruktors Java.
Java konstruktoru veidi
Java ir divu veidu konstruktori:
- Noklusējuma konstruktors (no-arg konstruktors)
- Parametrizēts konstruktors
Java noklusējuma konstruktors
Konstruktors tiek saukts par “Noklusējuma konstruktoru”, ja tam nav parametru.
Noklusējuma konstruktora sintakse:
(){}
Noklusējuma konstruktora piemērs
Šajā piemērā mēs veidojam no-arg konstruktoru klasē Bike. Tas tiks izsaukts objekta izveides laikā. |
//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(); } }Izmēģiniet to tūlīt
Izvade:
Bike is created
Noteikums: ja klasē nav konstruktora, kompilators automātiski izveido noklusējuma konstruktoru.
J) Kāds ir noklusējuma konstruktora mērķis?
Noklusējuma konstruktors tiek izmantots, lai nodrošinātu objekta noklusējuma vērtības, piemēram, 0, nulles utt., atkarībā no veida.
Noklusējuma konstruktora piemērs, kas parāda noklusējuma vērtības
//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(); } }Izmēģiniet to tūlīt
Izvade:
0 null 0 null
Paskaidrojums: Iepriekš minētajā klasē jūs neveidojat nevienu konstruktoru, tāpēc kompilators nodrošina noklusējuma konstruktoru. Šeit 0 un nulles vērtības nodrošina noklusējuma konstruktors.
Java parametrizētais konstruktors
Konstruktoru, kuram ir noteikts parametru skaits, sauc par parametrizētu konstruktoru.
Kāpēc izmantot parametrizēto konstruktoru?
Parametrētais konstruktors tiek izmantots, lai atsevišķiem objektiem nodrošinātu dažādas vērtības. Tomēr jūs varat arī norādīt tās pašas vērtības.
Parametrēta konstruktora piemērs
Šajā piemērā mēs esam izveidojuši Studentu klases konstruktoru, kam ir divi parametri. Konstruktorā var būt jebkurš parametru skaits.
//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(); } }Izmēģiniet to tūlīt
Izvade:
111 Karan 222 Aryan
Konstruktora pārslodze Java
Java valodā konstruktors ir gluži kā metode, bet bez atgriešanas veida. To var arī pārslogot, piemēram, Java metodes.
Konstruktors pārslodze Java ir paņēmiens, kurā ir vairāk nekā viens konstruktors ar dažādiem parametru sarakstiem. Tie ir sakārtoti tā, lai katrs konstruktors veiktu citu uzdevumu. Kompilators tos atšķir pēc parametru skaita sarakstā un to veidiem.
Konstruktora pārslodzes piemērs
//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(); } }Izmēģiniet to tūlīt
Izvade:
111 Karan 0 222 Aryan 25
Atšķirība starp konstruktoru un metodi Java
Starp konstruktoriem un metodēm ir daudz atšķirību. Tie ir norādīti zemāk.
Java konstruktors | Java metode |
---|---|
Konstruktors tiek izmantots, lai inicializētu objekta stāvokli. | Tiek izmantota metode, lai atklātu objekta uzvedību. |
Konstruktoram nedrīkst būt atgriešanas veids. | Metodei ir jābūt atgriešanas veidam. |
Konstruktors tiek izsaukts netieši. | Metode ir skaidri izsaukta. |
Java kompilators nodrošina noklusējuma konstruktoru, ja klasē nav neviena konstruktora. | Metodi nekādā gadījumā nenodrošina kompilators. |
Konstruktora nosaukumam ir jābūt tādam pašam kā klases nosaukumam. | Metodes nosaukums var būt vai nebūt tāds pats kā klases nosaukums. |
Java kopiju konstruktors
Java nav kopiju konstruktora. Tomēr mēs varam kopēt vērtības no viena objekta uz citu, piemēram, kopēt konstruktoru programmā C++.
Ir daudz veidu, kā Java kopēt viena objekta vērtības citā. Viņi ir:
- Pēc konstruktora
- Piešķirot viena objekta vērtības citam
- Ar objektu klases clone() metodi
Šajā piemērā mēs kopēsim viena objekta vērtības citā, izmantojot Java konstruktoru.
//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(); } }Izmēģiniet to tūlīt
Izvade:
111 Karan 111 Karan
Vērtību kopēšana bez konstruktora
Mēs varam kopēt viena objekta vērtības citā, piešķirot objektu vērtības citam objektam. Šajā gadījumā nav nepieciešams izveidot konstruktoru.
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(); } }Izmēģiniet to tūlīt
Izvade:
111 Karan 111 Karan
J) Vai konstruktors atgriež kādu vērtību?
Jā, tā ir pašreizējā klases instance (jūs nevarat izmantot atgriešanas veidu, taču tas atgriež vērtību).
Vai konstruktors inicializācijas vietā var veikt citus uzdevumus?
Jā, piemēram, objekta izveide, pavediena sākšana, metodes izsaukšana utt. Konstruktorā varat veikt jebkuru darbību, tāpat kā metodē.
kinoaktrise Kajal
Vai Java ir Constructor klase?
Jā.
Kāds ir konstruktoru klases mērķis?
Java nodrošina Constructor klasi, ko var izmantot, lai iegūtu klases konstruktora iekšējo informāciju. Tas ir atrodams java.lang.reflect pakotnē.