Verwendung von Java dieses Schlüsselwort

7

In einem Klassenkonstruktor versuche ich zu verwenden:

%Vor%

Ich suche die Datenbank und wenn der Datensatz existiert, verwende ich theObject generiert von Hibernate Query.

Warum kann ich this nicht verwenden?

    
lonelyloner 20.11.2010, 14:28
quelle

5 Antworten

5

this ist keine Variable, sondern ein Wert. Sie können this nicht als Lvalue in einem Ausdruck angeben.

    
AbdullahC 20.11.2010, 14:35
quelle
15

Es liegt daran, dass "das" keine Variable ist. Es bezieht sich auf die aktuelle Referenz. Wenn es dir erlaubt wäre, "dieses" neu zuzuweisen, würde es nicht mehr "dieses" bleiben, es würde "das" werden. Du kannst das nicht tun.

    
Sid 20.11.2010 14:32
quelle
3

Weil Sie this nicht zuweisen können.

this repräsentiert die aktuelle Objektinstanz, d. h. Sie selbst. Sie können this als unveränderlichen Verweis auf die Objektinstanz betrachten, deren Code gerade ausgeführt wird.

    
Frédéric Hamidi 20.11.2010 14:30
quelle
1

"this" bezieht sich auf die Objektinstanz, in der Ihre Methode aufgerufen wird.

    
mshipper 20.11.2010 15:05
quelle
1

Dieses Schlüsselwort enthält die Referenz des aktuellen Objekts. Sehen wir uns ein Beispiel an, um es zu verstehen.

%Vor%

Im obigen Beispiel gibt es einen Klassennamen ThisKeywordExample, der aus zwei Instanzdatenmembern a und b besteht. Es gibt eine Add-Methode, die zuerst die Zahl in a und b setzt und dann die Addition zurückgibt.

Instanzdatenmitglieder nehmen den Speicher, wenn wir das Objekt dieser Klasse erstellen, und werden von der refrence-Variablen in aufgerufen was wir die Referenz dieses Objekts halten. Im obigen Beispiel haben wir das Objekt der Klasse in der main-Methode erstellt und halten die Referenz dieses Objekts in die Referenzvariable tke. wenn wir die add-Methode aufrufen, wie in der add-Methode auf a und b zugegriffen wird weil add-Methode nicht die Referenz des Objekts hat. Die Antwort dieser Frage löscht das Konzept dieses Schlüsselwortes

Der obige Code wird von der JVM als

behandelt %Vor%

Die obigen Änderungen werden von der JVM vorgenommen, so dass sie automatisch den einen weiteren Parameter (object refrence) in die Methode und übergibt Halte es in die Reference-Variable und wende auf das Instanzelement dieses Objekts, um diese Variable zu werfen.

Die obigen Änderungen werden von JVM gemacht, wenn Sie Code kompilieren werden, dann gibt es einen Kompilierungsfehler, weil Sie nichts dabei tun müssen.Alle Dies wird von der JVM behandelt.

    
Jatin Khurana 28.11.2012 11:45
quelle

Tags und Links