设计一个圆circle类,包含圆心和半径两个属性:
1、编写合理的构造方法。
2、编写计算圆面积的方法getArea()。
3、编写计算圆是否包含指定的点contains(Point),contains(int x, int y)。
如题,要求写一个圆类,实际上还有一个隐含的要求——编写一个点类Point,它的属性有两个一个是x坐标,一个是y坐标
我们可以直接利用这个点类实例化一个圆心,给圆设计一个圆心属性,然后计算其他点到圆心的距离就知道点是不是在圆内了,代码如下:
public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Point point = new Point();//实例化一个点类
point.x = 5.0;//初始化点的x坐标
point.y = 5.0;//初始化点的y坐标
Point center = new Point();//实例化一个点类作为圆心
center.x = 2.0;
center.y = 2.0;
Circle circle = new Circle();//实例化一个圆类
circle.radius = 3.0;//半径属性
circle.center=center;//圆心属性
System.out.println(circle.contains(point));
System.out.println("圆的面积是: ");//这里仅仅是输出一个字符串,提示接下来输出面积的
System.out.println(circle.getArea());//输出面积
}
}
class Circle{
Point center;//圆的属性有两个,圆心和半径,这个是圆心
double radius;//这个是半径
public boolean contains(Point p){
double distance = Math.sqrt((center.x-p.x)*(center.x-p.x)+(center.y-p.y)*(center.y-p.y));
return distance <= radius;
}
public double getArea() {
double area = Math.PI*radius*radius;//这里计算圆的面积
return area;//返回圆的面积
}
}
class Point{//点的类
double x;
double y;
}