Hur man bäst implementerar överbelastning av konstruktörer i Java?



Den här artikeln presenterar dig för Constructor Overloading i Java. Förklaringen kommer att följas av programmatisk demonstration.

Advent of Java tog programmeringsvärlden med storm och den främsta anledningen till det är antalet funktioner som den förde med sig. I den här artikeln skulle vi diskutera överbelastning av konstruktörer i . Följande tips kommer att diskuteras i den här artikeln,

Så låt oss komma igång då,





Konstruktöröverbelastning i Java

Vad är en konstruktör?

En konstruktör är ett kodblock som används för att skapa objekt för en klass. Varje klass har en konstruktör, vare sig det är normal klass eller abstrakt klass. En konstruktör är precis som en metod men utan returtyp. När det inte finns någon konstruktör definierad för en klass skapas en standardkonstruktör av kompilatorn.

begränsningar i sql med exempel

Exempel



offentlig klass Student {// ingen konstruktör privat Strängnamn privat int ålder privat Sträng std // getters och setter offentlig tomrumsvisning () {System.out.println (this.getName () + '' + this.getAge () + ' '+ this.getStd ())} public static void main (String args []) {// för att använda visningsmetod för studentklass, skapa objekt för studentstudent = ny student () // eftersom vi inte har definierat någon konstruktör , skapar kompilatorn standardkonstruktör. så att student.display ()}}

I ovanstående program skapas standardkonstruktören av kompilatorn så att objektet skapas. Det är ett måste att ha konstruktör.

Detta leder oss till nästa det i denna artikel omKonstruktör överbelastning i Java.

Behov av andra konstruktörer

I ovanstående exempel kan studentobjekt skapas endast med standardkonstruktör. Där alla andra attribut för eleven inte initialiseras. Men det kan finnas vissa andra konstruktörer som används för att initialisera ett objekts tillstånd. till exempel -



public class Student {// attribut Strängnamn int age String std // Constructors public Student (String name) {// Constructor 1 this.name = name} public Student (String name, String std) {// Constructor 2 this.name = namnge this.std = std} public Student (Strängnamn, 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 ogiltig huvud (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 ()}}

Detta leder oss till nästa det i denna artikel omKonstruktör överbelastning i Java.

denna () referens

denna () referens kan användas inuti parametrerad konstruktör för att kalla standardkonstruktör implicit. Observera att detta () borde vara det första uttalandet i en konstruktör.

Exempel

public Student () {} // Constructor 4 public Student (String name, String std, int age) {// Constructor 3 this () // kommer att kalla standardkonstruktören. * Om det inte är konstruktörens första uttalande, kommer FEL att inträffa * detta.namn = namn detta.std = std detta.ålder = ålder

Notera

  • Rekursivt konstruktionssamtal är ogiltigt i java
  • Om vi ​​har definierat någon parametrerad konstruktör skapar inte kompilatorn standardkonstruktör. och vice versa om vi inte definierar någon konstruktör, skapar kompilatorn standardkonstruktören (även känd som ingen arg-konstruktör) som standard under kompileringen
  • Konstruktörssamtal måste vara det första uttalandet om konstruktör i Java

Således har vi kommit till slutet av den här artikeln om ”Constructor overloading in Java”. Om du vill veta mer, kolla in av Edureka, ett pålitligt online-lärande företag. Edurekas Java J2EE- och SOA-utbildning och certifieringskurs är utformad för att träna dig för både grundläggande och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Spring.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen på den här bloggen så kommer vi tillbaka till dig så snart som möjligt.