logo

Hvorfor bruker vi Constructor i Java?

I denne delen vil vi lære hvorfor vi bruker en konstruktør i Java og hva er formålet og konstruktørens behov . Sammen med dette vil vi også se typer konstruktør.

arp-a kommando

I Java er konstruktør ligner på metoden. Egenskapen til konstruktøren er at den må ha samme navn som klassenavnet. Den har ingen returtype. Vi trenger ikke å ringe konstruktøren manuelt. Den påkaller automatisk implisitt under instansieringen.

Med andre ord er en konstruktør en metode som kalles ved kjøretid under objektopprettingen ved å bruke den nye operatoren. JVM kaller det automatisk når vi lager et objekt. Når vi ikke definerer en konstruktør i klassen, er standardkonstruktøren alltid usynlig til stede i klassen. Det er følgende grunner til å bruke konstruktører:

  • Vi bruker konstruktører for å initialisere objektet med standard eller initial tilstand. Standardverdiene for primitiver er kanskje ikke det du leter etter.
  • En annen grunn til å bruke konstruktør er at den informerer om avhengigheter. Med andre ord, ved å bruke konstruktøren kan vi be brukeren av den klassen om nødvendige avhengigheter.
  • Vi kan finne ut hva den trenger for å bruke denne klassen, bare ved å se på konstruktøren.

Kort fortalt bruker vi konstruktøren til initialisere forekomstvariabelen til klassen.

Typer konstruktører

Det er to typer konstruktører i Java:

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

Parameterisert konstruktør

Som navnet antyder, godtar den argumenter (parametere). Den parameteriserte konstruktøren brukes hvis vi ønsker å dynamisk initialisere instansvariablene med de spesifiserte verdiene på tidspunktet for instansieringen.

Eksempel

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

Standard konstruktør

Standardkonstruktøren godtar ingen parameter. Den brukes hvis vi ønsker å initialisere instansvariablene med bestemte verdier. Hver Java-klasse har en standardkonstruktør, usynlig. Så vi trenger ikke å definere det separat. Husk at standardkonstruktøren fjernes fra klassen når vi lager en parameterisert konstruktør.

Eksempel

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

Merk: Når vi ikke leverer noen konstruktør til et Java-program, skriver Java-kompilatoren standardkonstruktøren på vegne av programmereren og kompilerer programmet. Den initialiserer forekomstvariablene med standardverdiene. For eksempel 0 for heltall, 0,0 for flytende og null for streng.

La oss lage et program og bruke standard og parameterisert konstruktør.

I Employee-klassen har vi laget to konstruktører, den ene er standardkonstruktøren og den andre er den parameteriserte konstruktøren. Ansatte-klassen har to private variabler, nemlig navn og alder. I hovedmetoden har vi instansiert klassen og brukt begge konstruktørene.

natasha dalal

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

Produksjon:

 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