【发布时间】:2012-04-24 22:47:20
【问题描述】:
写一个封装圆概念的类,假设圆有以下属性:一个Point代表圆心,圆的半径,一个整数。包括构造函数、访问器和修改器,以及 toString 和 equals 方法。还包括返回圆的周长(2*PI*radius)和面积(PI*radius^2)的方法。
import java.awt.*;
public class Circle {
private int radius;
public Circle() {
radius = 1;
}
public Circle(int x, int y, int r) {
super(x, y, c);
radius = r;
}
public int getRadius() {
return radius;
}
public double getArea() {
return Math.PI * radius * radius;
}
public double getPerimeter() {
return 2 * Math.PI * radius;
}
}
我可以做到这一点,我只是对向我的类添加点构造函数、访问器和修改器有点困惑。
会是这个样子吗?
protected int x, y;
public point() {
setPoint(0,0);
}
public point(int coordx, int coordy) {
setPoint(coordx,coordy);
}
public void setPoint(int coordx, int coordy) {
x = coordx;
y = coordy;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
public String toPrint() {
return "[" + x + "," + y + "]";
}
}
是否可以将两者结合在 1 个类中?我试了一下,里面的每一行都有一个错误,说 Circle 没有返回类型。任何洞察力都将是一种回报。再次感谢大家。
【问题讨论】:
-
一个圆有以下属性:一个Point表示圆的中心,圆的半径,一个整数。那么 Circle 类中的 Point 声明在哪里?
-
如果我没记错的话,Point 可以看作是半径固定为零的圆的超类。因此,我会编写一个 Point 类,然后派生一个 Circle 类。
-
@BigMike 如果 Point 是 Circle 的超类,它有半径吗?恕我直言,没有。我认为两者之间的共同点太少,无法创建像“点是半径为零的圆”这样的关系......
-
什么是超类/超构造函数?
-
@Betlista 对不起我的英语不好。当然一个点没有半径,圆通过添加它来扩展它。对我来说,用代码比用英语更容易描述。
标签: java