25.3 Arbeiten mit der Klasse Punkt
   
PunktDemo.java Der Quelltext zum Demoprogramm:
import info1.*;
public class PunktDemo{
  public static void main(String[] args){
    int x,y;
    System.out.print("x-Wert: ");
    x = Console.in.readInt();
    System.out.print("y-Wert: ");
    y = Console.in.readInt();

    Punkt p1 = new Punkt();
    Punkt p2 = new Punkt(x,y);
    
    System.out.println("P1(" + p1.x +"/" + p1.y +")");
    System.out.println("P2(" + p2.x +"/" + p2.y +")");

    p1.verschiebe(2,5);
    p2.spiegleAmUrsprung();
    
    System.out.println("P1 ist um 2 in x- und 
                         5 in y-Richtung verschoben");
    System.out.println("P1(" + p1.x +"/" + p1.y +")");
    System.out.println("P2 ist am Ursprung gespiegelt");
    System.out.println("P2(" + p2.x +"/" + p2.y +")");
    
  }
}
 

Wir erkennen wie man Instanzen der Klasse Punkt deklariert und sie dann auch erzeugt: Zunächst nennt man den Namen der Klasse von der man ein Objekt anlegen möchte.  Es folgt der Name, den die Instanz tragen soll, also p1 bzw. p2. Folgten jetzt Semikola, so wären die Objekte deklariert aber noch nicht instanziiert, Objekte selbst sind also noch nicht angelegt. Die geschieht unter Verwendung des new-Operators. Er benutzt den Konstruktor, um die Instanziierung vorzunehmen. In unserem Beispiel kommen, wie man sieht, beide Konstruktoren zum Einsatz.

Wie man auf die Koordinaten der Objekte zugreift, erkennt man in den Ausgaben. So liefert p1.x die x-Koordinate des Objektes p1  und p2.y die y-Koordinate des Objektes p2. Es handelt sich in beiden Fällen um einen direkten, lesenden Zugriff auf die Attribute der Objekte p1 und p2. Ein entsprechend direkter schreibende Zugriff sieht so aus:

p1.y = 4;

Damit hat man den y-Wert des Objektes p1 direkt geändert. Diese direkte Zugriffe auf Attribute eines Objektes versucht man in aller Regel zu vermeiden, ja zu verhindern. Direkte Zugriffe auf Objektattribute widersprechen dem Prinzip von Information hiding.
 

zu 25.4 Information hiding
zur Startseite www.pohlig.de (C) MPohlig 2003