Leitfaden für dieses Java-Schlüsselwort

Anleitung zu diesem Java-Schlüsselwort

 

1. Einführung

In diesem Tutorial werdenwe’ll take a look at the this Java keyword.

In Javathis keyword is a reference to the current object whose method is being called.

Lassen Sie uns erforschen, wie und wann wir das Schlüsselwort verwenden können.

2. Disambiguating Field Shadowing

The keyword is useful for disambiguating instance variables from local parameters. Der häufigste Grund dafür ist, dass Konstruktorparameter denselben Namen wie Instanzfelder haben:

public class KeywordTest {

    private String name;
    private int age;

    public KeywordTest(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

Wie wir hier sehen können, verwenden wirthis mit den Instanzfeldernname undage, um sie von Parametern zu unterscheiden.

Eine andere Verwendung ist die Verwendung vonthis, wobei der Parameter im lokalen Bereich ausgeblendet oder abgeschattet wird. Ein Anwendungsbeispiel finden Sie im ArtikelVariable and Method Hiding.

3. Referenzieren von Konstruktoren derselben Klasse

From a constructor, we can use this() to call a different constructor of the same class. Hier verwenden wirthis() für die Konstruktorkettung, um die Codeverwendung zu reduzieren.

Der häufigste Anwendungsfall ist der Aufruf eines Standardkonstruktors aus dem parametrisierten Konstruktor:

public KeywordTest(String name, int age) {
    this();

    // the rest of the code
}

Oder wir können den parametrisierten Konstruktor vom Konstruktor no argument aufrufen und einige Argumente übergeben:

public KeywordTest() {
    this("John", 27);
}

Beachten Sie, dassthis() die erste Anweisung im Konstruktor sein sollte, da sonst der Kompilierungsfehler auftritt.

4. this als Parameter übergeben

Hier haben wir die MethodeprintInstance(), bei der das Argumentthis Keyworddefiniert ist:

public KeywordTest() {
    printInstance(this);
}

public void printInstance(KeywordTest thisKeyword) {
    System.out.println(thisKeyword);
}

Innerhalb des Konstruktors rufen wir die MethodeprintInstance()auf. Mitthis übergeben wir einen Verweis auf die aktuelle Instanz.

5. this zurückgeben

We can also use this keyword to return the current class instance aus der Methode.

Um den Code nicht zu duplizieren, finden Sie hier ein vollständiges praktisches Beispiel für die Implementierung inbuilder design pattern.

6. Das Schlüsselwortthis innerhalb der inneren Klasse

Wir verwenden auchthis, um von der inneren Klasse aus auf die Instanz der äußeren Klasse zuzugreifen:

public class KeywordTest {

    private String name;

    class ThisInnerClass {

        boolean isInnerClass = true;

        public ThisInnerClass() {
            KeywordTest thisKeyword = KeywordTest.this;
            String outerString = KeywordTest.this.name;
        }
    }
}

Hier im Konstruktor können wir mit dem Aufruf vonKeywordTest.this. einen Verweis auf die Instanz vonKeywordTesterhalten. Wir können noch tiefer gehen und auf Instanzvariablen wieKeywordTest.this.name field zugreifen.

7. Fazit

In diesem Artikel haben wir das Schlüsselwortthisin Java untersucht.

Wie üblich ist der vollständige Codeover on Github verfügbar.