Aufrufen eines Konstruktors von einem anderen in Java
In Java ist es möglich, einen Konstruktor von einem anderen innerhalb derselben Klasse aufzurufen. Dies kann in verschiedenen Szenarien nützlich sein, z. B. beim Initialisieren eines Objekts mit Werten, die von einem übergeordneten Konstruktor bereitgestellt werden, oder beim Anpassen des Status des Objekts basierend auf bestimmten Kriterien.
Um einen Konstruktor von einem anderen aufzurufen, verwenden Sie einfach this Schlüsselwort gefolgt vom Namen des anderen Konstruktors und seinen Parametern, wie im folgenden Beispiel gezeigt:
public class Foo { private int x; public Foo() { this(1); // Call the Foo(int x) constructor with the value 1 } public Foo(int x) { this.x = x; } }
In diesem Beispiel der Standardkonstruktor Foo() ruft den Foo(int x)-Konstruktor mit dem Wert 1 auf. Wenn also ein Foo-Objekt ohne Angabe von Argumenten erstellt wird, wird sein x-Feld automatisch auf 1 gesetzt.
Das ist wichtig zu beachten Sie können nur mit einem Konstruktor verketten, und dieser Aufruf muss die erste Anweisung in Ihrem Konstruktorkörper sein. Wenn Sie außerdem einen Konstruktor aus einer Superklasse aufrufen müssen, verwenden Sie super anstelle von this.
Stellen Sie sich beispielsweise das folgende Szenario vor:
public class Animal { private String name; public Animal(String name) { this.name = name; } public Animal() { this("Default Animal"); // Call the Animal(String name) constructor with the default name "Default Animal" } }
In diesem Fall rufen beide Konstruktoren, einer mit und einer ohne Parameter, den Superklasse-Konstruktor mit dem Namen auf Parameter bzw. ein Standardwert. Dadurch können Sie die Namenseigenschaft für alle Animal-Objekte initialisieren.
Durch die Nutzung der Möglichkeit, einen Konstruktor von einem anderen aufzurufen, können Entwickler komplexe Klassenhierarchien mit anpassbarer Objektinitialisierung erstellen und einen konsistenten und vorhersehbaren Zustand für neu erstellte Objekte sicherstellen Objekte.
Das obige ist der detaillierte Inhalt vonWie kann ich in Java einen Konstruktor von einem anderen aufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!