- - Mik a konstruktorok a Java-ban és miért használják az építőket?

Mik azok a konstruktorok a Java-ban és miért használják az építőket?

Korábbi vitánkban a a példányváltozók inicializálása a Java-ban, találkoztunk a kivitelezővel. Itt részletesen tárgyaljuk a kivitelezőt. Először meglátjuk, mi az a kivitelező. Nagyon unalmas az összes változó inicializálása az osztály minden egyes példányának létrehozásakor.

Még akkor is, ha olyan kényelmi funkciókat ad hozzá, mint példáulinicializálni () [amint azt korábbi példáinkban használtuk], egyszerűbb és tömörebb lenne, ha az összes beállítást az objektum első létrehozásakor elvégezzük. A Java lehetővé teszi az objektumok számára, hogy inicializálják magukat létrehozásukkor. Ezt az automatikus inicializálást konstruktor használatával hajtják végre.

A kivitelező egy speciális módszer, amelynek vanugyanazzal a névvel, mint az osztály, amelyben található, és inicializálja az objektum belső állapotát, így a példányt létrehozó kódnak egy teljesen inicializált, használható objektum lesz a létrehozás után közvetlenül az új operátor befejezése előtt, és nincs visszatérési típusa, mert az osztály-konstruktor implicit erőforrás-típusa maga az osztálytípus.

Kivitelezők típusai:

  1. Alapértelmezett kivitelező.
  2. Paraméterezett kivitelező.
  3. Másoló kivitelező. (Később megvitatjuk)

Java program

class Employee{
String employeeName;
String address;
int age;
double salary;
/*Default Constructor */
Employee(){
employeeName = "Platini";
address = "France";
age = 45;
salary = 120500.92;
}
/* Parameterized Constructor */
Employee(String empName,String addr,int ag,double sal){
employeeName = empName;
address = addr;
age = ag;
salary = sal;
}
void showDetails(){
System.out.println("Employee's Name: "+employeeName);
System.out.println("Employee's Address: "+address);
System.out.println("Employee's Age: "+age);
System.out.println("Employee's Salary: "+salary);
}
}
class ConstructorDemo{
public static void main(String args[]){
System.out.println("Employee Details");
System.out.println("----------------");
Employee employee1 = new Employee();
employee1.showDetails();
System.out.println("----------------");
String employeeName = "John";
String address = "Los Angles";
int age = 25;
double salary = 34503.92;
Employee employee2 = new Employee(employeeName,address,age,salary);
employee2.showDetails();
System.out.println("----------------");
Employee employee3 = new Employee();
employee3.showDetails();
}
}

Kimenet

java kivitelező program

A Java kód és kimenet magyarázata

Az Employee () az alapértelmezett szerkesztője az Employee számáraosztály ebben a kódban. Alapértelmezésnek nevezik, mert nem vesz paramétereket. És ha nem határozza meg kifejezetten az osztály konstruktorát, akkor a Java létrehoz egy alapértelmezett konstruktort az osztály számára. Ha látja a korábbi példákban írt kódokat, akkor nem fog ott találni egyetlen szerkesztőt sem, annak ellenére, hogy képesek voltunk ezeknek az osztályoknak az objektumát létrehozni, csak azért, mert ez az oka.

Villog:

Az alapértelmezett konstruktor automatikusan nullára állítja az összes példányváltozót.

Ebben a példában az objektum alkalmazott1 ésAz alkalmazott3 a munkavállalói osztály alapértelmezett munkavállalója () konstruktorjával inicializálódik. Itt létrehoztunk egy alapértelmezett konstruktorot, az Employee () alkalmazottat az alkalmazottak osztályához, és néhány objektum alapján inicializáljuk az objektumokat. Akkor nem lesz többé nullával inicializálva, mivel nem a java által létrehozott implicit alapértelmezett konstruktor. Ez csak akkor történik meg, ha a programozó nem határoz meg konstruktort az adott osztály számára. Az alapértelmezett konstruktor automatikusan nullára állítja az összes példányváltozót.

Írtunk egy paramétert isépítő itt. Az objektumok létrehozásakor a paramétereket veszi, ezért a paraméterezett konstruktor. Az Employee Object Employ2 paraméterezett konstruktorral Initialize alkalmazott (String empName, String addr, int ag, double sal).

Villog:

Miután létrehozta a saját paramétertkonstruktor, akkor a Java nem hoz létre alapértelmezett konstruktort ehhez az osztályhoz. Ennek az osztálynak az alapértelmezett konstruktorát kifejezetten létre kell hoznia, különben nem lesz képes inicializálni az objektumokat az alapértelmezett konstruktor használatával. Ez lefordít egy fordítási idő hibát.

Itt nem állítottuk be az Alapértelmezett Munkavállaló () -otkonstruktor, és közben létrehozunk Employee (String empName, String addr, int ag, double sal) konstruktorot, nem tudunk objektumot létrehozni az Employee () konstruktor használatával. azaz

Alkalmazott alkalmazott1 = új alkalmazott ();

Alkalmazott alkalmazott3 = új alkalmazott (); mindkét állítás nem lesz többé érvényes.

Most, ha eltávolítottuk az Employee () alapértelmezett konstruktort, ha fordítunk, akkor ezt a hibát kapjuk a fordítási idő alatt.

java kivitelező program

Ha bármilyen kérdése van, tudassa velünk.

Ezután megtanuljuk hogyan lehet másolatkészítőket használni a Java-ban.

Itt talál további hasznos útmutatásokat és a Java programozásra vonatkozó végleges útmutatásokat.

Hozzászólások