Dieses Schlüsselwort ist ein Konzept, das ich in Java sehr schwer zu verstehen halte. :) Vielleicht liegt es daran, dass es zu dumm ist
Die Bedeutung dieses Schlüsselworts: Ein entsprechendes Handle kann für das Objekt generiert werden, dessen Methode aufgerufen wird.
Wie verstehst du diese Passage?
Es gibt ein solches Beispiel im Denken in Java
Es gibt zwei Objekte desselben Typs, die als A bzw. B bezeichnet werden. Wie unterscheiden wir also, wer diese Methode aufruft, wenn sie Methode f () aufrufen?
Zum Beispiel:
Klasse Banana {void f (int i) {/*** Method Body *****/}} Banana a = new Banana (); // Bananenobjekt Abanana b = new Banana (); // Bananenobjekt ba.f (1); bf (2);Woher weiß der Compiler also, welche F () -Funktion des Objekts Sie aufrufen? Tatsächlich sollte die Teleportation hinter den Kulissen sein:
af (1) << ==== >> banana.f (a, 1); bf (1) << ==== >> banana.f (b, 2);
Ich verstehe es als: Beim Generieren eines Bananenobjekts a. Wenn Sie eine Methode f () von a aufrufen, wird gleichzeitig ein Griff, der auf dieses Objekt zeigt.
Hier ist dieses zeigende Objekt neu Banana () oder dies ist gleichbedeutend mit A; dies "==" a;
Wenn wir uns in einer Methode befinden. Und wir hoffen, das aktuelle Objekt zu erreichen. Da dieser Griff vom Compiler heimlich übergeben wird, gibt es kein klares Symbol, um es zu identifizieren. Zu diesem Zeitpunkt können wir das Keyword verwenden
Die gemeinsame Bedeutung davon: Unabhängig davon, welches Objekt generiert wurde, wird diese Methode aufgerufen, ein Zeiger auf dieses Objekt wird generiert.
Klassische Beispiele im Denken in Java:
public class Leaf {private int i = 0; Leaf increment () {i ++; zurückgeben;1. Erzeugen Sie den Griff x eines Objekts; Das Syntaxformat ist Blatt x;
2. Erzeugen Sie ein Blattklassenobjekt; Das Syntaxformat ist New Leaf ();
3.. Stellen Sie eine Verbindung zwischen dem Griff und dem Objekt her; Die Syntax ist x = new Leaf ();
4. Rufen Sie die Methode Increment () im Objekt New Leaf () auf; Die Syntax ist x.increment ()
× xf wer nannte die Methode Increment ()? Es ist ein Objekt X (oder neuer Leaf ()) der Blattklasse, daher erzeugt das entsprechende System eine Referenz auf diese und verweist es heimlich auf x oder neues Leaf () -Objekt, sodass Increment () einen Verweis auf X zurückgibt! Es ist eine Speicheradresse. Wir können es ausdrucken und sehen!
Der obige Inhalt ist das Wissen dieses Keywords in Java, das Ihnen vom Herausgeber vorgestellt wurde. Ich hoffe, es wird für Sie hilfreich sein!