Ich bin verwirrt mit dem Schlüsselwort this
in Java. Wenn eine Klasse zwei Konstruktoren hat und wir das Schlüsselwort this
in einer Methode verwenden, wird das durch this
dargestellte Objekt instanziiert, wobei der von beiden Konstruktoren verwendet wird.Verwenden Sie 'dieses' Schlüsselwort in Java-Konstruktoren
Antwort
Es ist egal und ist nicht unterscheidbar
Es ist ein bisschen wie ein Auto zu bauen. Je nach Ausstattung ein anderer Konstruktor verwendet wird, aber am Ende haben Sie ein Auto (diese)
Sie das this
Stichwortes als Platzhalter denken kann. Zur Laufzeit wird dieses Schlüsselwort mit der Objektreferenz des Objekts ausgetauscht, mit dem Sie es zu tun haben.
Es hat nichts mit Konstruktoren, Speicherzuweisung oder etwas ähnliches zu tun. this
Schlüsselwort ist nur aktuelle Objektinstanzreferenz.
Das Schlüsselwort this
hat zwei Bedeutungen und die Verwirrung könnte um diese beiden Bedeutungen herum liegen.
Im Konstruktor ist this(...)
wie ein Methodenaufruf für Konstruktoren. Der Compiler wählt basierend auf der Anzahl und den Typen der von Ihnen verwendeten Argumente aus, welcher Konstruktor aufgerufen werden soll.
Wenn Sie this
als Referenz verwenden, bedeutet dies, dass dieses Objekt und der verwendete Konstruktor nicht wichtig ist.
Sie haben zwischen this.
und this()
, so zu unterscheiden zu sprechen:
Die meiste Zeit, Sie this
als Referenz auf das aktuelle Objekt verwenden, das heißt die Referenz dieses Objekt zur Laufzeit für this
ersetzt wird. Zum Beispiel, wenn Sie this
als Parameter oder Referenz this.someMember
verwenden.
können Sie verschiedene Konstrukteure haben mit unterschiedlichen Parametern, das heißt Überlastung Konstrukteuren. Zu Beginn eines Konstruktors können Sie einen anderen Konstruktor aufrufen, indem Sie this(parameter_1, ... parameter_n);
als erste Anweisung verwenden.
Eine schöne Erklärung der beiden Fälle kann bei the java tutorial about the this keyword finden.
Verwendung this
innerhalb eines Verfahrens Körper bezieht sich auf die Instanz der Klasse, in der das Verfahren vorhanden ist.
Dies bedeutet auch, dass this
nicht aus einem static
Kontext verwendet werden kann.
this
bedeutet die Instanz selbst regarldless, wie die Instanz
1.'this gebaut wurde, bezieht sich der Klasse zu widersprechen, wo es used.Generally schreiben wir Instanzvariablen, Konstruktoren und Methoden in class.All dieser Mitglieder werden durch "dieses" repräsentiert.
2.When ein Objekt einer Klasse erstellt wird, wird ein Standardreferenz auch intern auf die object.It die nichts anderes als ‚das‘ erstellt wurde.
3.Example für dieses Stichwort:
Probe (int x) // Parameterized Constructor {
dies.x = x; // Speichert die lokale Variable x in die aktuelle Klasseninstanzvariable x
}
danke für die Blumen ;-) –