Heim >Java >javaLernprogramm >Was ist der Unterschied zwischen Standard- und benutzerdefinierten Konstruktoren in Java?

Was ist der Unterschied zwischen Standard- und benutzerdefinierten Konstruktoren in Java?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-22 07:13:13826Durchsuche

What's the Difference Between Default and User-Defined Constructors in Java?

Standardkonstruktoren in Java

In Java wird automatisch ein Standardkonstruktor generiert, wenn keine anderen Konstruktoren definiert sind. Es handelt sich um einen Konstruktor ohne Argumente, der Felder mit ihren Standardwerten initialisiert. Der folgende Code definiert keinen Standardkonstruktor:

public Module() {
   this.name = "";
   this.credits = 0;
   this.hours = 0;
}

Dies ist ein benutzerdefinierter Konstruktor, der Argumente akzeptiert. Ein Standardkonstruktor würde so aussehen:

public Module() {}

Oder, wenn Feldtypen primitiv sind:

public Module() {
   super();
   this.name = null;
   this.credits = 0;
   this.hours = 0;
}

Hauptunterschiede

Der primäre Der Unterschied zwischen einem Standardkonstruktor und einem benutzerdefinierten Konstruktor ist:

  • Standardkonstruktoren erfordern keine Argumente. während benutzerdefinierte Konstruktoren Argumente haben können.
  • Standardkonstruktoren initialisieren Felder automatisch mit ihren Standardwerten (z. B. null für Objekte, 0 für numerische Grundelemente), während benutzerdefinierte Konstruktoren eine benutzerdefinierte Initialisierung ermöglichen.

Standardkonstruktor vs. kein Konstruktor

Überhaupt keinen Konstruktor entspricht einem Standardkonstruktor. Wenn keine Konstruktoren vorhanden sind, generiert der Java-Compiler automatisch einen Standardkonstruktoren ohne Argumente und ohne Feldinitialisierung.

Hinweis:

  • Falls Konstruktoren definiert sind In einer Klasse wird der Standardkonstruktor nicht generiert.
  • Standardkonstruktoren können nur implizit erstellt werden, nicht explizit.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Standard- und benutzerdefinierten Konstruktoren in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn