class Point {
private double x;//成员变量
private double y;//成员变量
//构造方法
Point (double _x,double _y){
x = _x;
y = _y;
}
//方法
public double getX() {
return x;
}
public double getY() {
return y;
}
public void setX(double i) {
x = i;
}
public void setY(double i) {
y = i;
}
}
class Circle {
private Point o;//Point类的复用
private double redius;//成员变量
//够着方法
Circle (Point p,double r){
o = p;
redius =r;
}
//重载
Circle (double r){
o = new Point(0.0, 0.0);
redius = r;
}
boolean contains(Point p){
double x = p.getX() - o.getX();
double y = p.getY() - o.getY();
if ((x*x + y*y) > redius*redius)
return false;
else
return true;
}
public void setO(double x,double y){
o.setX(x);
o.setY(y);
}
public Point getO(){
return o;
}
public double getRedius(){
return redius;
}
public void setRedius(double r){
redius = r;
}
public double area(){
return 3.14 * redius * redius;
}
}
public class TestCircle{
public static void main (String[] args){
Circle c1 = new Circle(new Point(1.0, 2.0), 2.0);
Circle c2 = new Circle(3.0);
System.out.println("c1:("+c1.getO().getX() + "," + c1.getO().getY()
+ ") " + "redius = " + c1.getRedius());
System.out.println("c2:("+c2.getO().getX() + "," + c2.getO().getY()
+ ") " + "redius = " + c2.getRedius());
System.out.println("c1:area= " + c1.area() );
System.out.println("c2:area= " + c2.area());
c1.setO(5.0,6.0);
c2.setRedius(6.0);
System.out.println("c1:("+c1.getO().getX() + "," + c1.getO().getY()
+ ") " + "redius = " + c1.getRedius());
System.out.println("c2:("+c2.getO().getX() + "," + c2.getO().getY()
+ ") " + "redius = " + c2.getRedius());
System.out.println("c1:area= " + c1.area() );
System.out.println("c2:area= " + c2.area());
Point p1 = new Point(5.2, 6.3);
System.out.println(c1.contains(p1));
System.out.println(c1.contains(new Point(10.0, 9.0)));
}
}