logo

Hvorfor bruger vi Constructor i Java?

I dette afsnit vil vi lære hvorfor vi bruger en konstruktør i Java og hvad er formålet og konstruktørens behov . Sammen med dette vil vi også se typer af konstruktør.

heltal dobbelt java

I Java er konstruktør ligner metoden. Konstruktørens egenskab er, at den skal have samme navn som klassenavnet. Den har ingen returtype. Vi behøver ikke at ringe til konstruktøren manuelt. Den påkalder automatisk implicit under instansieringen.

Med andre ord er en konstruktør en metode, der kaldes under kørsel under objektoprettelsen ved at bruge den nye operator. JVM'en kalder det automatisk, når vi opretter et objekt. Når vi ikke definerer en konstruktør i klassen, er standardkonstruktøren altid usynligt til stede i klassen. Der er følgende grunde til at bruge konstruktører:

  • Vi bruger konstruktører til at initialisere objektet med standard- eller initialtilstanden. Standardværdierne for primitiver er muligvis ikke det, du leder efter.
  • En anden grund til at bruge constructor er, at den informerer om afhængigheder. Med andre ord kan vi ved hjælp af konstruktøren anmode brugeren af ​​den klasse om nødvendige afhængigheder.
  • Vi kan finde ud af, hvad den skal bruge for at bruge denne klasse, blot ved at se på konstruktøren.

Kort sagt bruger vi konstruktøren til initialisere klassens instansvariabel.

Typer af konstruktører

Der er to typer konstruktører i Java:

uml diagram java
  • Parametriseret konstruktør
  • Standard konstruktør

Parametriseret konstruktør

Som navnet antyder, accepterer den argumenter (parametre). Den parametriserede konstruktør bruges, hvis vi vil dynamisk initialisere instansvariablerne med de angivne værdier på tidspunktet for instansieringen.

Eksempel

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

Standard konstruktør

Standardkonstruktøren accepterer ikke nogen parameter. Det bruges, hvis vi ønsker at initialisere instansvariablerne med bestemte værdier. Hver Java-klasse har en standardkonstruktør, usynligt. Så vi behøver ikke at definere det separat. Husk, at standardkonstruktøren fjernes fra klassen, når vi opretter en parametriseret konstruktør.

Eksempel

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

Bemærk: Når vi ikke leverer nogen konstruktør til et Java-program, skriver Java-kompileren standardkonstruktøren på vegne af programmøren og kompilerer programmet. Den initialiserer instansvariablerne med standardværdierne. For eksempel 0 for heltal, 0,0 for float og null for streng.

Lad os oprette et program og bruge standard- og parameterkonstruktøren.

I Employee-klassen har vi oprettet to konstruktører, den ene er standardkonstruktøren og den anden er den parametriserede konstruktør. Medarbejderklassen har to private variabler, nemlig navn og alder. I hovedmetoden har vi instansieret klassen og brugt begge konstruktørerne.

bash hvis andet

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