|
15.3 Die Klasse Punkt Version 2
|
|
| UML der neuen Klasse |
Die neue Version unserer Klasse
Punkt
soll den Bedingungen der Kapselung gehorchen. In der UML-Notation hat die
Klasse jetzt folgende Aussehen:
Dass die Attribute
x
und y
vor direktem Zugriff geschützt sind (in Java werden sie
private
deklariert), verdeutlicht man in UML durch das '-' - Zeichen vor dem Namen
der Attribute. Vor die Namen der Methoden, auf die man von Außen zugreifen
können soll, setzen wir ein '+' - Zeichen (in Java werden sie
public
deklariert) |
| Download: |
class Punkt {
private int x,y;
public Punkt() {
x=0;
y=0;
}
public Punkt(int x, int y) {
this.x = x;
this.y = y;
}
public void setx(int x){
this.x = x;
}
public void sety(int y){
this.y = y;
}
public int getx() {
return x;
}
public int gety() {
return y;
}
public void verschiebe(int dx, int dy) {
x += dx;
y += dy;
}
public void spiegleAmUrsprung(){
x = -x;
y = -y;
}
}
Die neue aufrufende Klasse. p1.x = 3; würde vom Compiler abgelehnt. 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(x,y);
Punkt p2 = new Punkt();
System.out.print("x-Wert: ");
p2.setx(Console.in.readInt());
System.out.print("y-Wert: ");
p2.sety(Console.in.readInt());
System.out.println("P1(" + p1.getx() +"/" + p1.gety() +")");
System.out.println("P2(" + p2.getx() +"/" + p2.gety() +")");
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.getx() +"/" + p1.gety() +")");
System.out.println("P2 ist am Ursprung gespiegelt");
System.out.println("P2(" + p2.getx() +"/" + p2.gety() +")");
}
}
|
| Man
beachte. In
p2.setx(Console.in.readInt()); liefert
readInt()
eine
int-Zahl,
die dann in der
setx(...)-Methode
übergeben wird. |
|
|
x-Wert: 4 |
|
| zu | 15.4 Objekte sind Referenzen |
| zur Startseite | www.pohlig.de (C) MPohlig 2005 |