logo

Varför använder vi Constructor i Java?

I det här avsnittet kommer vi att lära oss varför vi använder en konstruktor i Java och vad är syftet och konstruktörens behov . Tillsammans med detta kommer vi också att se typer av konstruktör.

I Java är konstruktör liknar metoden. Konstruktörens egenskap är att den måste ha samma namn som klassnamnet. Den har ingen returtyp. Vi behöver inte anropa konstruktören manuellt. Den anropar automatiskt implicit under instansieringen.

Med andra ord är en konstruktor en metod som anropas vid körning under objektskapandet genom att använda den nya operatorn. JVM anropar det automatiskt när vi skapar ett objekt. När vi inte definierar en konstruktor i klassen är standardkonstruktorn alltid osynligt närvarande i klassen. Det finns följande skäl att använda konstruktörer:

  • Vi använder konstruktorer för att initiera objektet med standard- eller initialtillståndet. Standardvärdena för primitiver kanske inte är det du letar efter.
  • En annan anledning att använda konstruktor är att den informerar om beroenden. Med andra ord, med hjälp av konstruktorn, kan vi begära användaren av den klassen för nödvändiga beroenden.
  • Vi kan ta reda på vad den behöver för att använda den här klassen, bara genom att titta på konstruktorn.

Kort sagt, vi använder konstruktorn för att initiera klassens instansvariabel.

Typer av konstruktörer

Det finns två typer av konstruktörer i Java:

  • Parametriserad konstruktör
  • Standardkonstruktör

Parameteriserad konstruktör

Som namnet antyder accepterar den argument (parametrar). Den parametriserade konstruktorn används om vi vill initiera instansvariablerna dynamiskt med de angivna värdena vid tidpunkten för instansieringen.

Exempel

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

Standardkonstruktör

Standardkonstruktorn accepterar inte någon parameter. Den används om vi vill initiera instansvariablerna med vissa värden. Varje Java-klass har en standardkonstruktor, osynligt. Så vi behöver inte definiera det separat. Kom ihåg att standardkonstruktorn tas bort från klassen när vi skapar en parametriserad konstruktor.

Exempel

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

Obs: När vi inte tillhandahåller någon konstruktor till ett Java-program, skriver Java-kompilatorn standardkonstruktorn på uppdrag av programmeraren och kompilerar programmet. Den initierar instansvariablerna med standardvärdena. Till exempel, 0 för heltal, 0,0 för float och null för String.

Låt oss skapa ett program och använda den förinställda och parametriserade konstruktorn.

I klassen Employee har vi skapat två konstruktorer, den ena är standardkonstruktorn och den andra är den parametriserade konstruktorn. Medarbetarklassen har två privata variabler nämligen namn och ålder. I huvudmetoden har vi instansierat klassen och använt båda konstruktörerna.

Employee.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(); } } 

Produktion:

 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