/** Diese Klasse beschreibt einfache Punkte in der Ebene. */ public class Point { private int x; private int y; /** Der Standardkonstruktor initialisiert beide Koordinaten mit 1 (statt wie gewohnt mit 0). */ Point() { this(1,1); } /** Ein weiterer Konstruktor initialisiert die x-Koordinate mit a und die y-Koordinate mit b. */ Point (int a, int b) { this.x = a; this.y = b; } /** Die Methode toString liefert eine druckfaehige Zeichenfolge. */ public String toString() { return "Point[x="+x+",y="+y+"]"; } /** Die Methode move verschiebt den gewaehlten Punkt um den Vektor (dx,dy). @param dx Verschiebung der x-Koordinate @param dy Verschiebung der y-Koordinate */ public void move(int dx, int dy) { this.x = this.x + dx; //this noetig wg. Verschattung this.y = this.y + dy; } /** Zugriff auf x-Koordinate. */ public int getX() { return this.x; } /** Zugriff auf y-Koordinate. */ public int getY() { return y; // this ist hier nicht noetig } /** Versuch, mit Call-by-Reference den Point mit der groesseren y-Koordinate auszuwaehlen. */ public void chooseErr (Point p1, Point higherPoint) { if (this.getY() >= p1.getY()) { higherPoint = this; } else { higherPoint = p1; } } /** Die Methode choose waehlt den Point mit der groesseren y-Koordinate aus. Spezifikation von choose: post: (this.getY() >= p1.getY => return == this) & (this.getY() >= p1.getY => return == p1) */ public Point choose (Point p1) { if (this.getY() >= p1.getY()) { return this; } else { return p1; } } }