(仅记录自己的学习之路)
1、 设计一个名为Point的类,代表一个以x坐标和y坐标表示的点。该类包括:
(1) 一个创建点(0,0)的无参构造方法;
(2) 以指定坐标构建点的构造方法;
(3) 成员变量x和y的get和set方法;
(4) 一个名为distance的静态方法,返回两个MyPoint对象之间的距离。
提示:
- 方法头:public static double distance(Point p1, Point p2)
- 调用Math类的sqrt方法计算平方根,方法定义如下: public static double sqrt(double a)
//返回正确舍入的 double 值的正平方根。
(5) 一个名为distance的方法,返回从该点到MyPoint类型的指定点之间的距离;
提示:
- 方法头: public double distance(Point p)
- 调用上面的静态distance方法计算该点和指定点之间的距离。
2、编写一个Circle类,包括:
(1) 一个Point类型的私有成员变量p,表示圆心;
(2) 一个double类型的私有成员变量radius,表示半径;
(3) 一个无参的构造方法,创建一个圆心在原点,且半径为1的默认的圆;
(4) 一个带参数的构造方法,创建指定圆心p和半径radius的圆;
(5) 一个带参数的构造方法,创建指定圆心坐标x和y以及半径radius的圆;
(6) 两个成员变量的修改器和读取器;
(7) 一个返回圆面积的方法getArea();
(8) 一个返回圆周长的方法getPerimeter();
(9) 如果给定点(x,y)在这个圆内,那么方法contains(double x, double y)返回true,否则返回false;
(10) 如果给定点p在这个圆内,那么方法contains(Point p)返回true,否则返回false;
(11) 如果给定的圆在这个圆内,那么方法contains(Circle circle) 返回true,否则返回false;
(12) 如果给定的圆和这个圆重叠,那么方法overlaps(Circle circle) 返回true,否则返回false。
3、要求:
(1) 画出UML类图(注意,包含两个类,且要体现两个类之间关系)。
(2) 编程实现两个类,下面是测试类代码
public class TestCircle {
public static void main(String[] args) {
Circle c1 = new Circle();
c1.setRadius(6);
System.out.println("点(7,8)在圆c1内吗?" + c1.contains(7,8));
System.out.println("点(3,4)在圆c1内吗?" + c1.contains(3,4));
Circle c2 = new Circle(new Point(7,3), 7);
System.out.println("圆c2包含在圆c1吗?" + c1.contains(c2));
System.out.println("圆c1与圆c2重叠吗?" + c1.overlaps(c2));
Circle c3 = new Circle(new Point(90,100), 6);
System.out.println("圆c1与圆c3重叠吗?" + c1.overlaps(c3));
System.out.println("圆c3包含在圆c2吗?" + c2.contains(c3));
}
}
代码如下:
1、Point类
package TestCircle;
public class Point {
private double x;
private double y;
public Point() {
x = 0;
y = 0;
}
public Point(double x, double y) {
this.x = x;
this.y = y;
}
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;