25.2 Die Klasse Punkt
   
Klasse und Objekte Wenn wir von einem Punkt P in einer Ebene sprechen, sprechen wir von einer Klasse. Wenn wir vom P1(2/3) sprechen, meinen wir eine Instanz von P also ein Objekt.

 

Punkt.java class Punkt {
  int x,y;

  Punkt() {
    x=0;
    y=0;
  }
  Punkt(int xNeu, int yNeu) {
    x = xNeu;
    y = yNeu;
  }
  void verschiebe(int dx, int dy) {
    x +=dx;
    y +=dy;
  }
  void spiegleAmUrsprung(){
    x = -x;
    y = -y;
  }
}
Attribute x und y, gemeint sind damit die x- und y-Koordinate eines Punktes sind die Attribute der Klasse und damit der Objekte, die wir später aus dieser Klasse  erzeugen wollen.

 

Konstruktoren Sog. Konstruktoren werden dazu benutzt, Objekte aus der Klasse zu erzeugen. Sie erkennt man daran, dass sie wie Methoden aufgebaut sind, aber keinen Rückgabewert, nicht einmal void, besitzen. Weiter haben die Konstruktoren den gleichen Namen wie ihre Klasse.
Wenn man selbst eine Klasse schreibt, und keinen Konstruktor implementiert, so besitzt sie automatisch den sog. Standardkonstruktor. In unserem Fall hieße er:
Punkt(){};

Da zwischen den geschweiften Klammern keinen weiteren Text besitzt, kann man mit ihm zwar Objekte anlegen, diese haben aber noch keine Eigenschaften. Im Falle unseres Punktes macht das wenig Sinn. Wenn wir wollen, dass die Koordinaten eines konkreten Punktes nach seiner Erzeugung auch Werte besitzen, sollte dies der Standardkonstruktor leisten. Dazu überschreiben wir den implizit vorliegenden Standardkonstruktor durch:

Punkt() {
   x = 0;
   y = 0;
}

Ein konkreter Punkt, den wir mit Hilfe des neuen Standardkonstruktors anlegen, hat also die Koordinaten (0/0) .

Eine Klasse kann über mehrere Konstruktoren verfügen. So kann bei einem laufen Programm sonnvoll sein, dass ein Punkt erzeugt wird, dessen Koordinaten gerade berechnet wurden, also nicht 0 sind. Dazu implementieren wir einen weiteren Konstruktor:

Punkt(int xNeu, int yNeu) {
  x = xNeu;
  y = yNeu;
}

Natürlich heißen beide Konstruktoren gleich. Damit ein Compiler zwei gleichlautende Konstruktoren unterscheiden kann, müssen sie sich in der Signatur unterscheiden. Die Parameterliste müssen also unterschiedlich viele Parameter haben oder, wenn die Anzahl der Parameter bei beiden gleich ist, so müssen sie sich mindestens im Typ einer Variablen in der Poarameterliste unterscheiden. Was wir hier über gleichlautende Konstruktoren gesagt haben, gilt übrigens auch für alle Methoden.

 

Methoden Über die Implementierung der Methoden in der Klasse Punkt brauchen wir nicht mehr viel Worte verlieren. Wie das geht, haben wir schon in der Klasse Mathematik gesehen. Allerdings liefern die Methoden keinen Wert an den Aufrufer zurück, weshalb sie als Rückgabewert void erhalten.
 
zu 25.3 Arbeiten mit Objekten der Klasse Punkt
zur Startseite www.pohlig.de (C) MPohlig 2003