Überschreiben Sie für die Klasse GeometricObject die Methode equals. Zwei Objekte sollen gleich sein, wenn einen gleichen Eckpunkt haben und sich Höhe und Weite maximal um 1 unterscheiden. Das Feld velocity wird dabei nicht betrachtet.
package name.panitz.oose;
public class GeometricObject {
Vertex corner;
double width;
double height;
Vertex velocity;
public GeometricObject(Vertex corner, double width, double height,
Vertex velocity) {
super();
this.corner = corner;
this.width = width;
this.height = height;
this.velocity = velocity;
}
double size(){
return width*height;
}
public void move() {
corner.x += velocity.x;
corner.y += velocity.y;
}
@Override
public String toString() {
return corner+" "+width+" "+height;
}
boolean isLargerThan(GeometricObject that){
return size()>that.size();
}
boolean isAbove(GeometricObject that){
return corner.y+height<that.corner.y;
}
boolean isUnderneath(GeometricObject that){
return that.isAbove(this);
}
boolean isLeftOf(GeometricObject that){
return corner.x+width<that.corner.x;
}
boolean isRightOf(GeometricObject that){
return that.isLeftOf(this);
}
boolean touches(GeometricObject that){
return !(isLeftOf(that)||isRightOf(that)
||isAbove(that)||isUnderneath(that));
}
//TODO equals überschreiben
}