Verstehen der Verwendung von „this“ in Java-Klassen
Während sich „this“ in erster Linie auf das aktuelle Objekt, seine spezifische Verwendung und beziehen kann Notwendigkeit kann etwas verwirrend sein. Hier ist eine Aufschlüsselung der Szenarien, in denen „dies“ unverzichtbar ist:
1. Eindeutigkeit von Variablenreferenzen in Settern
Setter-Methoden verwenden häufig „this“, um zwischen Parametern und privaten Mitgliedsvariablen zu unterscheiden, die denselben Namen haben. Durch die Verwendung von „this.x“ weist der Code den Wert des Parameters „x“ direkt der Instanzvariablen „x“ zu und vermeidet so jegliche Mehrdeutigkeit.
Beispiel:
public class Foo { private String name; public void setName(String name) { this.name = name; } }
2. Übergeben der aktuellen Klasseninstanz als Argument
Beim Aufrufen von Methoden für andere Objekte können Sie mit „this“ die aktuelle Klasseninstanz als Argument übergeben. Dadurch kann die aufgerufene Methode auf das aktuelle Objekt zugreifen und mit ihm interagieren.
Beispiel:
public class Foo { public String useBarMethod() { Bar theBar = new Bar(); return theBar.barMethod(this); } public String getName() { return "Foo"; } } public class Bar { public void barMethod(Foo obj) { obj.getName(); } }
3. Aufrufen alternativer Konstruktoren
Innerhalb von Konstruktoren kann „this“ verwendet werden, um alternative Konstruktoren derselben Klasse aufzurufen. Dies ist nützlich, wenn Sie mehrere Konstruktoren haben und das Objekt mit bestimmten Werten initialisieren möchten.
Beispiel:
class Foo { public Foo() { this("Some default value for bar"); // Optional additional lines } public Foo(String bar) { // Do something with bar } }
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3