Hvordan best implementere konstruktøroverbelastning i Java?



Denne artikkelen vil introdusere deg for Constructor Overloading In Java. Forklaringen vil bli fulgt av programmatisk demonstrasjon.

Advent of Java tok programmeringsverdenen med storm, og den viktigste grunnen til det er antall funksjoner den hadde med seg. I denne artikkelen vil vi diskutere Constructor Overloading i . Følgende tips vil bli diskutert i denne artikkelen,

Så la oss komme i gang da,





Konstruktøroverbelastning i Java

Hva er en konstruktør?

En konstruktør er en blokk med kode som brukes til å lage objekt til en klasse. Hver klasse har en konstruktør, det være seg normal klasse eller abstrakt klasse. En konstruktør er akkurat som en metode, men uten returtype. Når det ikke er definert noen konstruktør for en klasse, opprettes en standard konstruktør av kompilatoren.

er-et forhold i java

Eksempel



offentlig klasse Student {// ingen konstruktør privat Strengnavn privat int alder privat String std // getters og setter offentlig tomromvisning () {System.out.println (this.getName () + '' + this.getAge () + ' '+ this.getStd ())} public static void main (String args []) {// for å bruke visningsmetode for studentklasse, opprett objekt til Student Student student = new Student () // da vi ikke har definert noen konstruktør , oppretter kompilator standardkonstruktør. slik at student.display ()}}

I ovenstående program er standardkonstruktøren opprettet av kompilatoren slik at objektet opprettes. Det er et must å ha konstruktør.

Dette bringer oss til det neste i denne artikkelenOverbelastning av konstruktører i Java.

Behov for andre konstruktører

I eksempelet ovenfor kan studentobjekt bare opprettes med standardkonstruktør. Der alle andre attributter til studenten ikke er initialisert. Men det kan være visse andre konstruktører som brukes til å initialisere tilstanden til et objekt. 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 = name this.std = std} public Student (String name, String std, int age) {// Constructor 3 this.name = name this.std = std this.age = age} public void display () {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 oss til det neste i denne artikkelenOverbelastning av konstruktører i Java.

denne () referansen

denne () referansen kan brukes i parameteriserte konstruktører for å kalle standardkonstruktøren implisitt. Vær oppmerksom på at dette () skal være den første uttalelsen i en konstruktør.

Eksempel

public Student () {} // Constructor 4 public Student (Strengnavn, String std, int age) {// Constructor 3 dette () // vil kalle standardkonstruktøren. * Hvis det ikke er den første uttalelsen fra konstruktøren, vil FEIL oppstå * dette.navn = navn dette.std = std dette.alderen = alder

Merk

  • Rekursivt konstruktøranrop er ugyldig i java
  • Hvis vi har definert noen parametriserte konstruktører, vil ikke kompilatoren opprette standard konstruktør. og omvendt hvis vi ikke definerer noen konstruktører, oppretter kompilatoren standardkonstruktøren (også kjent som ingen arg-konstruktør) som standard under kompilering
  • Constructor calling må være den første uttalelsen fra constructor i Java

Dermed har vi kommet til en slutt på denne artikkelen om ‘Constructor overloading in Java’. Hvis du ønsker å lære mer, sjekk ut av Edureka, et pålitelig online læringsfirma. Edurekas Java J2EE- og SOA-opplæring og sertifiseringskurs er designet for å trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet på denne bloggen, så kommer vi tilbake til deg så snart som mulig.