dieses Keyword in Java

โšก Intelligente Zusammenfassung

Java Das Schlรผsselwort `this` ist eine Referenzvariable, die innerhalb einer Methode oder eines Konstruktors auf das aktuelle Objekt verweist. LessDie Abschnitte behandeln Zweck, gรคngige Anwendungsfรคlle, Namenskonflikte, Konstruktorverkettung und ein durchgerechnetes Beispiel.

  • ๐Ÿ”‘ Definition: Dies bezieht sich auf die aktuelle Instanz einer Klasse.
  • ๐Ÿงฑ Konflikte lรถsen: Verwenden Sie this.field, um Instanzvariablen von Parametern mit identischen Namen zu unterscheiden.
  • ๐Ÿชœ Konstruktorverwendung: this() ruft einen anderen Konstruktor derselben Klasse auf, um eine sauberere Initialisierung zu gewรคhrleisten.
  • โœ… Weitergeben und Zurรผckgeben: Senden Sie dies als Argument oder geben Sie es zurรผck, um die Verkettung von Methoden zu unterstรผtzen.
  • ๐Ÿงช Ausgearbeitetes Beispiel: Die Klasse โ€žAccountโ€œ zeigt, wie dadurch das Problem der Nullausgabe aufgrund von Parameterรผberschattung behoben wird.
  • ๐Ÿค– KI-Unterstรผtzung: KI-gestรผtzte Codierungswerkzeuge erkennen fehlende this-Prรคfixe und schlagen prรคzise Refaktorierungen vor.

dieses Keyword in Java

Was ist dieses Schlรผsselwort in Java?

Das dieses Schlรผsselwort in Java ist eine Referenzvariable, die auf das aktuelle Objekt einer Methode oder eines Konstruktors verweist. Der Hauptzweck der Verwendung dieses Schlรผsselworts Java Ziel ist es, die Verwechslung zwischen Klassenattributen und Parametern mit demselben Namen zu beseitigen.

Verwendung dieses Schlรผsselworts in Java

Im Folgenden werden verschiedene Verwendungen des Schlรผsselworts โ€žthisโ€œ aufgefรผhrt. Java:

  • Es kann verwendet werden, um auf die Instanzvariable der aktuellen Klasse zu verweisen.
  • Es kann verwendet werden, um den aktuellen Klassenkonstruktor aufzurufen oder zu initialisieren.
  • Es kann als Argument in einem Methodenaufruf รผbergeben werden.
  • Es kann als Argument beim Aufruf eines Konstruktors รผbergeben werden.
  • Es kann verwendet werden, um die aktuelle Klasseninstanz zurรผckzugeben.

Klicken Sie auf werden auf dieser Seite erlรคutert wenn das Video nicht zugรคnglich ist

Wie man das Schlรผsselwort โ€žthisโ€œ anhand eines Beispiels versteht

dieses Keyword in Java
Java dieses Schlรผsselwort Beispiel

  1. Klasse: Klassenkonto
  2. Instanzvariable: A und B
  3. Methode Daten festlegen: Zum Festlegen des Werts fรผr a und b.
  4. Methode Daten anzeigen: Um die Werte fรผr a und b anzuzeigen.
  5. Hauptmethode: Hier erstellen wir ein Objekt der Klasse Account und rufen Methoden zum Setzen und Anzeigen von Daten auf.

Den Compiler-Wirrwarr durchschauen

Lasst uns den Code kompilieren und ausfรผhren.

Unsere erwartete Ausgabe fรผr A und B sollte auf die Werte 2 bzw. 3 initialisiert werden.

Aber der Wert ist 0. Warum? Lasst uns der Sache nachgehen.

dieses Keyword in Java

In der Methode Set data werden die Argumente als a und b deklariert, wรคhrend die Instanzvariablen ebenfalls a und b heiรŸen.

dieses Keyword in Java

Wรคhrend der Ausfรผhrung ist der Compiler verwirrt. Er kann nicht entscheiden, ob es sich bei โ€žaโ€œ links vom Zuweisungsoperator um eine Instanzvariable oder eine lokale Variable handelt. Daher wird โ€žaโ€œ beim Aufruf der Methode โ€žset dataโ€œ kein Wert zugewiesen.

dieses Keyword in Java

Die Lรถsung ist das Schlรผsselwort โ€žthisโ€œ.

Fรผge sowohl โ€žaโ€œ als auch โ€žbโ€œ mit dem Java dieses Schlรผsselwort, gefolgt von einem Punktoperator (.).

dieses Keyword in Java

Wรคhrend der Codeausfรผhrung wird beim Aufruf der Methode setdata durch ein Objekt das Schlรผsselwort this durch den Objekthandler โ€žobjโ€œ ersetzt. (Siehe Abbildung unten.)

dieses Keyword in Java

Jetzt weiรŸ der Compiler,

  • Das โ€žaโ€œ auf der linken Seite ist eine Instanzvariable.
  • Das โ€žaโ€œ auf der rechten Seite ist eine lokale Variable.

Das Variablen werden korrekt initialisiert und die erwartete Ausgabe wird angezeigt.

dieses Keyword in Java

Wie der Compiler mit mehreren Objekten umgeht

Angenommen, Sie wรคhlen unterschiedliche Namen fรผr Ihre Instanzvariablen und Methodenargumente.

dieses Keyword in Java

Aber dieses Mal erstellen Sie zwei Objekte der Klasse, die jeweils die Methode โ€žset dataโ€œ aufrufen.

Wie bestimmt der Compiler, ob er mit der Instanzvariable von Objekt 1 oder Objekt 2 arbeiten soll?

dieses Keyword in Java

Nun die Der Compiler hรคngt implizit an die Instanzvariable mit dem Schlรผsselwort this (siehe Abbildung unten).

dieses Keyword in Java

Wenn also Objekt 1 die Set-Data-Methode aufruft, wird eine Instanzvariable durch ihre Referenzvariable angehรคngt.

dieses Keyword in Java

Wรคhrend Objekt 2 die Set-Data-Methode aufruft, wird eine Instanzvariable von Objekt 2 geรคndert.

dieses Keyword in Java

Der Compiler erledigt das automatisch. Sie mรผssen das Schlรผsselwort `this` nicht explizit hinzufรผgen, es sei denn, eine Ausnahmesituation erfordert dies.

Beispiel: dieses Schlรผsselwort in Java Mit Code

Ejemplo: Um die Verwendung dieses Schlรผsselworts zu erlernen.

Schritt 1) Kopieren Sie den folgenden Code in einen Notizblock.

class Account{
int a;
int b;

 public void setData(int a ,int b){
  a = a;
  b = b;
 }
 public void showData(){
   System.out.println("Value of A ="+a);
   System.out.println("Value of B ="+b);
 }
 public static void main(String args[]){
   Account obj = new Account();
   obj.setData(2,3);
   obj.showData();
 }
}

Schritt 2) Den Code speichern, kompilieren und ausfรผhren.

Schritt 3) Die Werte von a und b werden als Null angezeigt? Um den Fehler zu korrigieren, fรผgen Sie Zeile 6 und 7 mit dem entsprechenden Wert hinzu. fehlen uns die Worte. Stichwort.

this.a =a;
this.b =b;

Schritt 4) Speichern, kompilieren und fรผhren Sie den Code aus. Diesmal sind die Werte von a und b auf 2 bzw. 3 gesetzt.

Hรคufig gestellte Fragen

Das Schlรผsselwort `this` bezieht sich auf das aktuelle Objekt, dessen Methode oder Konstruktor gerade ausgefรผhrt wird. Es ermรถglicht dem Code den Zugriff auf die Instanzfelder und -methoden dieses Objekts.

Nein. Das Schlรผsselwort `this` gehรถrt zu einer Instanz, wรคhrend statische Methoden auf Klassenebene existieren. Die Verwendung von `this` innerhalb einer statischen Methode fรผhrt zu einem Kompilierfehler.

this() ruft einen anderen Konstruktor derselben Klasse wie die erste Anweisung auf. Dadurch wird doppelter Code vermieden und ein Konstruktor kann die Einrichtung an einen รผberladenen Konstruktor delegieren.

KI-Codierungsassistenten kennzeichnen verdeckte Parameter, fรผgen das fehlende this-Prรคfix hinzu und schreiben Konstruktoren so um, dass sie this()-Verkettung und Fluent Setter verwenden, die this zurรผckgeben.

KI-Tutoren erklรคren die Objektidentitรคt, zeigen den Unterschied zwischen Instanz- und lokalem Gรผltigkeitsbereich auf und erstellen Schritt-fรผr-Schritt-Beispiele mit Quizfragen, die verdeutlichen, wann das Schlรผsselwort โ€žthisโ€œ verwendet werden sollte.

Sehen Sie sich unseren Artikel an Java Interviewfragen: - Zu unseren Stellenangeboten

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: