Java_类的学习与使用(Lab 5_Exercise 4)

题目:


解答:

 

public class Circle2D {
	double x=0,y=0,radius=1;			//定义类中的方法所使用的变量
	
	public Circle2D () {			//无参构造函数,即不输入参数时,默认的实例圆心在(0,0),半径为1
		
	}
	
	public Circle2D (double x,double y,double radius) {			//有参构造函数,用于生成具有相应参数的实例
		this.x=x;
		this.y=y;
		this.radius=radius;
	}

	public double getX() {			//用于访问x值的方法
		return x;
	}

	public double getY() {			//用于访问y值的方法
		return y;
	}

	public double getRadius() {			//用于访问radius的方法
		return radius;
	}
	
	public double getArea() {			//计算并返回面积值
		double area=0;
		
		area=Math.PI*Math.pow(radius,2);
		
		return area;
	}
	
	public double getPerimeter() {			//计算并返回周长
		double perimeter=0;
		
		perimeter=2*Math.PI*radius;
		
		return perimeter;
	}
	
	public boolean contains(double x,double y) {			//判断(x,y)是否在对应实例圆的内部
		double d=0;
		
		d=Math.sqrt(x*x+y*y);
		
		if(d<radius)return true;
		else return false;
	}
	
	public boolean contains(Circle2D circle) {			//参数circle为Circle2D类所对应的某个实例
		double x1=circle.getX() ,y1=circle.getY(),radius1=circle.getRadius();			//得到circle实例的参数 
		double x0=x,y0=y,radius0=radius;
		double d=0;
		
		d=Math.sqrt(Math.pow((x1-x0),2)+Math.pow((y1-y0),2));
		
		if(d<radius0-radius1) return true;			//判断目前的实例圆是否内涵于circle对应的实例圆
		else return false;
	}
	
	public boolean overlaps(Circle2D circle) {			//判断目前的实例圆是否与circle对应的实例圆相交
		double x1=circle.getX() ,y1=circle.getY(),radius1=circle.getRadius(); 
		double x0=x,y0=y,radius0=radius;
		double d=0;
		
		d=Math.sqrt(Math.pow((x1-x0),2)+Math.pow((y1-y0),2));
		
		if(d>Math.abs(radius1-radius0) && d<radius1+radius0) return true;
		else return false;
	}

	public static void main(String[] args) {			//这里为了方便,直接在类中写main方法
		Circle2D c1=new Circle2D(2,2,5.5);			//新建3个实例圆
		Circle2D c2=new Circle2D(4,5,10.5);
		Circle2D c3=new Circle2D(3,5,2.3);
		
		System.out.printf("Circle1 area:%3f\n",c1.getArea());
		System.out.printf("Circle perimeter:%3f\n",c1.getPerimeter());
		System.out.printf("Does circle1 contain the point (3,3)? %b\n",c1.contains(3,3));
		System.out.printf("Does circle contain the circle centered at (4,5) and radius 10.5? %b\n",c1.contains(c2));
		System.out.printf("Does circle1 overlap the circle centered at (3,5) and radius 2.3? %b\n",c1.overlaps(c3));

	}

}

对类的理解:

1、类是对象的一个模板,封装了对象的数据以及处理方法

2、通过新建类的实例来调用类中的方法



最后,感谢各位的浏览啦,如果对代码有什么改进建议,可以在下方留言区留言ヽ(・ω・。)ノ

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值