Hoe constructor-overbelasting het beste in Java te implementeren?



Dit artikel laat je kennismaken met Constructor Overloading in Java. De uitleg wordt gevolgd door een programmatische demonstratie.

De komst van Java heeft de programmeerwereld stormenderhand veroverd en de belangrijkste reden daarvoor is het aantal functies dat het met zich meebracht. In dit artikel bespreken we Constructor Overloading in . De volgende tips zullen in dit artikel worden besproken,

Dus laten we beginnen,





Constructor Overloading in Java

Wat is een constructeur?

Een constructor is een codeblok dat wordt gebruikt om een ​​object van een klasse te maken. Elke klasse heeft een constructor, of het nu een normale klasse of een abstracte klasse is. Een constructor is net als een methode, maar zonder retourtype. Als er geen constructor is gedefinieerd voor een klasse, wordt een standaardconstructor gemaakt door de compiler.

java addactionlistener (dit)

Voorbeeld



public class Student {// no constructor private String name private int age private String std // getters en setters public void display () {System.out.println (this.getName () + '' + this.getAge () + ' '+ this.getStd ())} public static void main (String args []) {// om de weergavemethode van de Student-klasse te gebruiken, maak een object van Student Student student = new Student () // aangezien we geen constructor hebben gedefinieerd , compiler maakt standaard constructor. zodat student.display ()}}

In het bovenstaande programma wordt de standaardconstructor gemaakt door de compiler, zodat het object wordt gemaakt. Het is een must om een ​​constructor te hebben.

Dit brengt ons bij de volgende in dit artikelConstructor overbelast in Java.

Behoefte aan andere constructeurs

In het bovenstaande voorbeeld kan Student-object alleen worden gemaakt met de standaardconstructor. Waar alle andere kenmerken van student niet zijn geïnitialiseerd. Maar er kunnen bepaalde andere constructors zijn die worden gebruikt om de toestand van een object te initialiseren. voor bijvoorbeeld -



public class Student {// attributes 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 = naam this.std = std} openbare student (tekenreeksnaam, tekenreeks std, int leeftijd) {// Constructor 3 this.name = naam this.std = std this.age = leeftijd} openbare ongeldige weergave () {System.out .println (this.getName () + '' + this.getAge () + '' + this.getStd ())} public static void main (String args []) {Student stu1 = nieuwe student ('ABC') stu1 .display () Student stu2 = nieuwe student ('DEF', '5-C') stu2.display () Student stu3 = nieuwe student ('GHI', '6-C', 12) stu3.display ()}}

Dit brengt ons bij de volgende in dit artikelConstructor overbelast in Java.

this () referentie

this () referentie kan worden gebruikt in de constructor met parameters om de standaardconstructor impliciet aan te roepen. Let op, this () zou de eerste instructie binnen een constructor moeten zijn.

Voorbeeld

public Student () {} // Constructor 4 public Student (String name, String std, int age) {// Constructor 3 this () // roept de standaard constructor aan. * Als het niet de eerste instructie van de constructor is, treedt ERROR op * this.name = name this.std = std this.age = age

Opmerking

  • Recursieve constructor-aanroep is ongeldig in Java
  • Als we een constructor met parameters hebben gedefinieerd, zal de compiler geen standaardconstructor maken. en vice versa als we geen constructor definiëren, maakt de compiler standaard de standaardconstructor (ook bekend als no-arg constructor) tijdens het compileren
  • Constructor-aanroep moet de eerste instructie van constructor in Java zijn

Hiermee zijn we aan het einde gekomen van dit artikel over ‘Constructor overloading in Java’. Als je meer wilt weten, bekijk dan de door Edureka, een vertrouwd online leerbedrijf. Edureka's Java J2EE- en SOA-trainings- en certificeringscursus is ontworpen om u te trainen in zowel kern- als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van deze blog en we nemen zo snel mogelijk contact met je op.