this?

Status
Nicht offen für weitere Antworten.
V

Venom

Gast
Hi,

Ich lerne gerade Java und bin nun bei dem Thema der Konstruktoren etc. angekommen. In dem Kapitel taucht der Befehl this. auf. Er wird zwar erklärt, allerdings bin ich immer noch nicht so ganz dahinter gestiegen, wie genau dieser Befehl funktioniert.


Wäre cool wenn ihr mir helfen könntet. :)
 

Michael

Mitglied
Hi Venom,

mit "this" hast du eine Referenz auf die derzeitigenInstanz in der "this" verwendet wird. Brauchst du z.B. den Wert einer Instanzvariablen, dann kannst du mit "this.variablenname" darauf zugreifen oder aber auch Methoden der Instanz aufrufen "this.methodenAufruf()".
Java erkennt jedoch meistens implizit was du meinst und du musst es daher in vielen fällen nicht explizit angeben.

Mal kleines Beispiel:
Code:
class Zeit {
      // hier drei Instanzvariablen, Stunde, Minute, Zeit
      private int hour;
      private int minute;
      private int second;

      public Zeit( int hour, int minute, int second) { // constructor
              this.hour = hour; // wir schreiben den wert des parameters "hour" in die Instanzvariable hour;
              this.minute = minute;
              this.second = second;
       }
}
 

Campino

Top Contributor
Im Normalfall werden Objekte(bzw. deren Variablen, Methoden) über ihren Namen angesprochen.z.b.

Code:
Objektname.methodenname(parameter);

Was aber macht man wenn man auf ein Objekt zugreifen möchte, und zwar in einer Methode des selben Objekts.
Die antwort lautet: this
Code:
this.methodenname(parameter);
ruft also die Methode methodenname des Objekts in dem Die anweißung steht auf. In diesem Beispiel könnte man this auch weglassen, aber in folgendem Beispiel nich, weil hier sowohl der Parameter des Konstruktors und die Variable der Funktion den selben namen tragen.

Code:
public class Test{
String variable;

public Test(String variable){
this.variable=variable;
}
}

Hier hat das this Sinn. Es wird gebraucht um Parameter und Variable voneinander zu unterscheiden. Natuerlich könnte man auch den Parameter anders benennen.
 

Venom

Mitglied
In jedem Objekt hat der Parameter doch einen eigenen Wert. Also müsste ich ihn doch immer ohne this ansprechen können? Man übergibt doch den Parameter an das jeweilige Objekt bzw. die Methode. Und auf diesen Wert kann ich dann beliebig zugreifen?
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben