设计一个名为Circle2D的类

该博客介绍了一个Java实现的2D圆类Circle2D,包括构造方法、获取面积、周长、判断是否包含点和另一个圆以及检测两个圆是否重叠的方法。示例代码展示了如何创建Circle2D实例并进行相关操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.util.Scanner;

public class Main {

	private static Scanner input;

	public static void main(String[] args) {
		input = new Scanner(System.in);
		System.out.print("请输入圆的圆心坐标X,Y和圆的半径:");
		Circle2D op1 = new Circle2D(input.nextDouble(),input.nextDouble(),input.nextDouble());
		System.out.print("请输入指定那个圆的信息:");
		Circle2D op2 = new Circle2D(input.nextDouble(),input.nextDouble(),input.nextDouble());
		System.out.print("请输入指定那个点的信息:");
		double x = input.nextDouble();
		double y = input.nextDouble();
		Circle2D op3 = new Circle2D();
		
		System.out.println("The circle's area is "+op1.getArea());
		System.out.println("The circle's perimeter is "+op1.getPerimeter());
		System.out.println("The circle overlaps with the specified circle: "+op1.overlaps(op2));
		System.out.println("The circle contains the specified circle: "+op1.contains(x, y));
	}

}
class Circle2D{
	private double x;
	private double y, radius;
	public Circle2D()
	{
		this.x = 0;
		this.y = 0;
		this.radius = 1;
	}
	public Circle2D(double x, double y, double radius)
	{
		this.x = x;
		this.y = y;
		this.radius = radius;
	}
	public double getRadius()
	{
		return this.radius;
	}
	public double getArea()
	{
		double area;
		area = Math.PI * this.radius * this.radius;
		return area;
	}
	public double getPerimeter()
	{
		double perimeter;
		perimeter = 2 * Math.PI * this.radius; 
		return perimeter;
	}
	public boolean contains(double x, double y)
	{
		if(Math.sqrt((x - this.x) * (x - this.x) 
				+ (y - this.y) * (y - this.y))<this.radius)
			return true;
		else
			return false;
	}
	public boolean contains(Circle2D circle)
	{
		if(Math.sqrt((this.x - circle.x) * (this.x - circle.y) 
				+ (this.y - circle.y) * (this.y - circle.y))<this.radius)
			return true;
		else
			return false;
	}
	public boolean overlaps(Circle2D circle)
	{
		double d = Math.sqrt((circle.x - this.x) *(circle.x - this.x) 
				+ (circle.y - this.y) * (circle.y - this.y));
		if(d < (this.radius + circle.getRadius()))
			return true;
		else
			return false;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值