Anleitung zu diesem Java-Schlüsselwort

1. Einleitung

In diesem Tutorial werfen wir einen Blick auf dieses Java-Schlüsselwort.

In Java ist dieses Schlüsselwort eine Referenz auf das aktuelle Objekt, dessen Methode aufgerufen wird .

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

2. Disambiguating Field Shadowing

Das Schlüsselwort ist nützlich, um Instanzvariablen von lokalen Parametern zu unterscheiden . Der häufigste Grund ist, wenn wir Konstruktorparameter mit demselben 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 wir dies mit den Instanzfeldern name und age , um sie von Parametern zu unterscheiden.

Eine andere Verwendung besteht darin, dies mit dem Parameter zu verwenden, der im lokalen Bereich ausgeblendet oder abgeschattet wird. Ein Anwendungsbeispiel finden Sie im Artikel zum Ausblenden von Variablen und Methoden.

3. Referenzieren von Konstruktoren derselben Klasse

Von einem Konstruktor aus können wir this () verwenden , um einen anderen Konstruktor derselben Klasse aufzurufen . Hier verwenden wir this () für die Konstruktorkettung, um die Codeverwendung zu reduzieren.

Der häufigste Anwendungsfall ist das Aufrufen 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, dass this () die erste Anweisung im Konstruktor sein sollte, da sonst der Kompilierungsfehler auftritt.

4. Übergeben Sie dies als Parameter

Hier haben wir die printInstance () -Methode, bei der das Argument this Keyword definiert ist:

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

Innerhalb des Konstruktors rufen wir die printInstance () -Methode auf. Mit diesem können wir einen Verweis auf die aktuelle Instanz übergeben.

5. Rückkehr dieser

Wir können dieses Schlüsselwort auch verwenden , um die aktuelle Klasseninstanz von der Methode zurückzugeben.

Um den Code nicht zu duplizieren, finden Sie hier ein vollständiges praktisches Beispiel für die Implementierung im Builder-Entwurfsmuster.

6. Das this- Schlüsselwort innerhalb der inneren Klasse

Wir verwenden dies auch, 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 von KeywordTest.this einen Verweis auf die KeywordTest- Instanz erhalten . Wir können noch tiefer gehen und auf Instanzvariablen wie das Feld KeywordTest.this.name zugreifen .

7. Fazit

In diesem Artikel haben wir das Schlüsselwort this in Java untersucht.

Wie üblich ist der vollständige Code auf Github verfügbar.