mai
2010
Java Quiz #37
Voici un nouveau quiz, pour bien finir le mois de mai avant d'entamer ce beau mois de juin.
La classe ColoredPoint
ci-dessous pose un problème assez subtil. Lequel ?
public class Point { private int x; private int y; public Point(int x, int y) { this.x = x; this.y = y; } public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof Point)) { return false; } final Point point = (Point) o; return (x == point.x && y == point.y); } public int hashCode() { int result = x; result = 31 * result + y; return result; } } public class ColoredPoint extends Point { private Color color; public ColoredPoint(int x, int y, Color color) { super(x, y); this.color = color; } public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof ColoredPoint && super.equals(o))) { return false; } final ColoredPoint point = (ColoredPoint) o; return (color == null ? (point.color == null) : color.equals(point.color)); } public int hashCode() { int result = super.hashCode(); result = 31 * result + (color != null ? color.hashCode() : 0); return result; } }