Sådan bedst implementeres konstruktøroverbelastning i Java?



Denne artikel introducerer dig til Constructor Overloading i Java. Forklaringen efterfølges af programmatisk demonstration.

Advent of Java tog programmeringsverdenen med storm, og den væsentligste årsag til det er antallet af funktioner, det medbragte. I denne artikel vil vi diskutere overbelastning af konstruktører i . Følgende punkter vil blive diskuteret i denne artikel,

Så lad os komme i gang dengang,





Konstruktøroverbelastning i Java

Hvad er en konstruktør?

En konstruktør er en blok kode, der bruges til at oprette objekt til en klasse. Hver klasse har en konstruktør, det være sig normal klasse eller abstrakt klasse. En konstruktør er ligesom en metode, men uden returtype. Når der ikke er defineret nogen konstruktør til en klasse, oprettes en standardkonstruktør af kompilatoren.

gør dobbelt til int java

Eksempel



offentlig klasse Elev {// ingen konstruktør privat Stringnavn privat int age privat String std // getters og setters public void display () {System.out.println (this.getName () + '' + this.getAge () + ' '+ this.getStd ())} offentlig statisk ugyldig hoved (String args []) {// for at bruge visningsmetode for Student-klasse, opret objekt for Student Student student = ny Student () // da vi ikke har defineret nogen konstruktør , opretter compiler standardkonstruktør. så student.display ()}}

I ovenstående program oprettes standardkonstruktøren af ​​kompilatoren, så objektet oprettes. Det er et must at have konstruktør.

Dette bringer os til det næste i denne artikel omKonstruktør overbelastning i Java.

Behov for andre konstruktører

I ovenstående eksempel kan studentobjekt kun oprettes med standardkonstruktør. Hvor alle andre attributter for studerende ikke initialiseres. Men der kan være visse andre konstruktører, der bruges til at initialisere et objekts tilstand. for f.eks. -



offentlig klasse Student {// attributter String name int age String std // Constructors public Student (String name) {// Constructor 1 this.name = name} public Student (String name, String std) {// Constructor 2 this.name = navngiv this.std = std} offentlig studerende (strengnavn, streng std, int alder) {// Konstruktør 3 this.name = navngiv this.std = std this.age = alder} offentlig tom skærm () {System.out .println (this.getName () + '' + this.getAge () + '' + this.getStd ())} offentlig statisk ugyldig hoved (String args []) {Student stu1 = new Student ('ABC') stu1 .display () Student stu2 = new Student ('DEF', '5-C') stu2.display () Student stu3 = new Student ('GHI', '6-C', 12) stu3.display ()}}

Dette bringer os til det næste i denne artikel omKonstruktør overbelastning i Java.

denne () reference

denne () reference kan bruges inde i parametreret konstruktør til at kalde standard konstruktør implicit. Bemærk, at dette () skal være den første erklæring inde i en konstruktør.

Eksempel

public Student () {} // Constructor 4 public Student (String name, String std, int age) {// Constructor 3 dette () // kalder standardkonstruktøren. * Hvis det ikke er den første erklæring fra konstruktøren, vil der opstå FEJL * dette.navn = navngiv dette.std = std dette.alder = alder

Bemærk

  • Rekursive konstruktøropkald er ugyldige i java
  • Hvis vi har defineret nogen parametreret konstruktør, opretter kompilatoren ikke standardkonstruktør. og omvendt, hvis vi ikke definerer nogen konstruktør, opretter compileren standardkonstruktøren (også kendt som no-arg-konstruktør) som standard under kompilering
  • Konstruktøropkald skal være den første erklæring fra konstruktør i Java

Således er vi nået til slutningen af ​​denne artikel om 'Constructor overloading in Java'. Hvis du ønsker at lære mere, skal du tjekke af Edureka, et pålideligt online læringsfirma. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til at træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

Har du et spørgsmål til os? Nævn det i kommentarsektionen på denne blog, og vi vender tilbage til dig hurtigst muligt.