logo

Miért használjuk a Constructort a Java nyelven?

Ebben a részben megtanuljuk miért használunk konstruktort a Java-ban és mi a cél és a kivitelező igénye . Ezzel együtt látni fogjuk a a konstruktor típusai.

Java nyelven a konstruktőr hasonló a módszerhez. A konstruktor tulajdonsága, hogy meg kell egyeznie az osztálynévvel. Nincs visszatérési típusa. Nem szükséges manuálisan hívnunk a kivitelezőt. A példányosítás során implicit módon automatikusan meghív.

Más szavakkal, a konstruktor egy olyan metódus, amelyet futás közben hívunk meg az objektum létrehozása során az új operátor használatával. A JVM automatikusan meghívja, amikor létrehozunk egy objektumot. Ha nem definiálunk konstruktort az osztályban, az alapértelmezett konstruktor mindig láthatatlanul jelen van az osztályban. A következő okok indokolják a konstruktorok használatát:

  • Konstruktorokat használunk az objektum alapértelmezett vagy kezdeti állapotú inicializálására. Előfordulhat, hogy a primitívek alapértelmezett értékei nem azok, amelyeket keresel.
  • A konstruktor használatának másik oka az, hogy tájékoztat a függőségekről. Más szóval, a konstruktor segítségével lekérhetjük az adott osztály felhasználóját a szükséges függőségekre.
  • Megtudhatjuk, mire van szüksége ennek az osztálynak a használatához, ha megnézzük a konstruktort.

Röviden, a konstruktort használjuk inicializálja az osztály példányváltozóját.

Konstruktorok típusai

A Java-ban kétféle konstruktor létezik:

  • Paraméteres konstruktor
  • Alapértelmezett konstruktor

Paraméterezett konstruktor

Ahogy a neve is sugallja, argumentumokat (paramétereket) fogad el. A paraméterezett konstruktort akkor használjuk, ha dinamikusan szeretnénk inicializálni a példányváltozókat a példányosításkor megadott értékekkel.

Példa

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

Alapértelmezett konstruktor

Az alapértelmezett konstruktor nem fogad el semmilyen paramétert. Akkor használjuk, ha bizonyos értékekkel szeretnénk inicializálni a példányváltozókat. Minden Java osztálynak van egy alapértelmezett konstruktora, láthatatlanul. Tehát nem kell külön definiálnunk. Ne feledje, hogy az alapértelmezett konstruktor eltávolításra kerül az osztályból, amikor paraméterezett konstruktort hozunk létre.

Példa

 public class Demo { int i; //default constructor public demo() { //the value of i is fixed this.i = 100; } } 

Megjegyzés: Ha nem biztosítunk konstruktort egy Java programhoz, a Java fordító a programozó nevében megírja az alapértelmezett konstruktort, és lefordítja a programot. A példányváltozókat az alapértelmezett értékekkel inicializálja. Például 0 az egész szám, 0,0 a float, és null a String.

Készítsünk programot és használjuk az alapértelmezett és paraméterezett konstruktort.

bin a bcd-hez

Az Employee osztályban két konstruktort hoztunk létre, az egyik az alapértelmezett, a másik a paraméterezett konstruktor. Az Employee osztálynak két privát változója van, nevezetesen a név és az életkor. A fő metódusban példányosítottuk az osztályt, és mindkét konstruktort használtuk.

Munkavállaló.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(); } } 

Kimenet:

 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