В этой Программе я хотел бы создать класс Circle и проверить несколько кругов, если они концентрически друг с другом. Однако я не уверен, что не так с моим кодом в методе isConcentricWith. Почему в параметре должен быть Circle, а не Point, и почему я не могу использовать this.center == center (это приведет к ошибке по параметру Circle.
Кто-нибудь укажет на мою ошибку и даст объяснение и решениес этим? Спасибо!
public class Circle {
private Point center;
private int radius;
public static void main(String[] args) {
Circle c1 = new Circle(new Point(1, 2), 3);
Circle c2 = new Circle(4, 5, 6);
Circle c3 = new Circle(1, 2, 8);
Circle c4 = new Circle(12, 5, 2);
System.out.println("C1: " + c1);
System.out.println("C2: " + c2);
System.out.println("C3: " + c3);
System.out.println("C4: " + c4);
System.out.println();
if (c1.isConcentricWith(c2)) {
System.out.println("C1 and C2 are concentric");
} else {
System.out.println("C1 and C2 are not concentric");
}
if (c1.isConcentricWith(c3)) {
System.out.println("C1 and C3 are concentric");
} else {
System.out.println("C1 and C3 are not concentric");
}
}
public Circle(Point center, int radius) {
this.center = center;
this.radius = radius;
}
public Circle(int x_coordinates, int y_coordinates, int radius) {
center = new Point(x_coordinates, y_coordinates);
this.radius = radius;
}
public Point getCenter() {
return center;
}
public int getRadius() {
return radius;
}
public void setCenter(Point center) {
this.center = center;
}
public void setRadius(int radius) {
this.radius = radius;
}
public boolean isConcentricWith(Circle center) {
return this.center == center;
}
public String toString(){
return getCenter() +" with radius " + getRadius();
}
Обновление : isConcentricWith
всегда будет возвращать ложь, когда я пишу это так:
public boolean isConcentricWith(Circle center) {
return (equals(this.center));
}