„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wann und warum benötigen Sie das Schlüsselwort „this“ in Java-Klassen?

Wann und warum benötigen Sie das Schlüsselwort „this“ in Java-Klassen?

Veröffentlicht am 16.01.2025
Durchsuche:907

When and Why Do You Need the

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
    }
}
Neuestes Tutorial Mehr>

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