Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


4.3.2

Der Verweisoperator this


Mit dem Schlüsselwort this ist es möglich, einen Verweis auf das Objekt zu machen, in dem dieser Operator steht. Unter Verwendung von this kann man beispielsweise in einem Konstruktor einen anderen Konstruktor der Klasse aufrufen. Mit this lässt sich der dritte Konstruktor von Point vereinfachen:
  public Point(int x, int y, int color) {
    this(x, y);
    this.color = color;
  }

Anhand der Anzahl und der Typen der Parameter erkennt der Interpreter, dass er den zweiten Konstruktor aufrufen muss, der dann die Datenelemente x und y initialisiert.

Darüber hinaus kann this als Qualifizierer für Datenelemente einer Klasse dienen, deren Bezeichner durch Methodenparameter verdeckt sind. Dies passiert immer dann, wenn eine Methode Parameter besitzt, deren Bezeichner mit Datenelementen der Klasse identisch sind. Die Bezeichner der Methodenparameter haben in diesem Fall Vorrang vor den Datenelementbezeichnern. Ohne einen zusätzlichen Qualifizierer sind die Datenelementbezeichner verdeckt, so dass nicht mehr auf sie zugegriffen werden kann.

Bisher wurden die Parameter der Konstruktoren in unserem Beispiel mit newX und newY bezeichnet, um die Parameter von den Datenelementen der Klasse unterscheiden zu können. Prinzipiell kann diese Einschränkung mit this entfallen. Bei ausgiebigem Gebrauch dieser Möglichkeit sieht die Definition von Point folgendermaßen aus:
  public class Point {
    public int x, y, color;
  
    public Point(int x, int y) {
      this.x = x;
      this.y = y;
    }
  
    public Point(int x, int y, int color) {
      this(x, y);
      this.color = color;
    }
  
    public void moveTo(int x, int y) {
      this.x = x;
      this.y = y;
    }
  
    public void moveRel(int dx, int dy) {
      x += dx;
      y += dy;
    }
  
  }
Diese Technik hat den Vorteil, dass man die Parameter genauso wie die Datenelemente benennen kann, wenn sie die gleiche Semantik haben oder lediglich an die Datenelemente zugewiesen werden. Ohne die Verwendung von this müsste man »künstliche« Bezeichner erfinden, obwohl im Prinzip dasselbe gemeint ist. Auch in den Quelltexten der Standardbibliotheken ist diese Vorgehensweise häufig anzutreffen.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.