欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java---定义一个圆(Circle)类表示三维空间中的圆(两个成员变量:圆心Point类、半径)

程序员文章站 2022-04-03 23:19:13
...

要求如下:

  1. 可以生成具有特定圆心、半径的圆对象
  2. 提供可以设置成员变量的方法
  3. 计算一个点(Point)对象是否在圆(Circle)对象内

源代码如下:

import java.util.Scanner;

class Point{//Point点类,用于确定一个点的坐标
	double x;//x坐标
	double y;//y坐标
	
	public Point(double x,double y) {
		this.x = x;
		this.y = y;
	}
	
	void showPoint() {//显示点的坐标
		System.out.print("点的坐标为: ");
		System.out.println("(" + x + "," + y +  ")");
	}
}

public class Circle {//Circle圆类,用于确定一个圆
	private double radius;//圆的半径
	private Point point;//为类Point定义对象point作为圆的圆心坐标
	
	public Circle(Point point,double radius) {
		this.point = point;
		this.radius = radius;
	}
	
	void showCircle(){//显示圆的圆心坐标和半径
		System.out.print("圆心坐标为: ");
		System.out.println("(" + point.x + "," + point.y +  ")");
		System.out.print("圆的半径为: ");
		System.out.println(radius);
	}

	void judgement(Point a,Circle b){//判断点与圆的关系(包括圆外、圆上、圆内)
		if((a.x-point.x)*(a.x-point.x)+(a.y-point.y)*(a.y-point.y)>(b.radius*b.radius))
			System.out.print("点在圆外!");
		else if((a.x-point.x)*(a.x-point.x)+(a.y-point.y)*(a.y-point.y)==(b.radius*b.radius))
			System.out.print("点在圆上!");
		else if((a.x-point.x)*(a.x-point.x)+(a.y-point.y)*(a.y-point.y)<(b.radius*b.radius))
			System.out.print("点在圆内!");
	}	
		
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);//键盘输入
		System.out.print("请输入点的坐标(x坐标、y坐标)    : ");//输入提示语
		Point point1 = new Point(in.nextDouble(),in.nextDouble());//点的坐标
		System.out.print("请输入圆的坐标(x坐标、y坐标、半径): ");//输入提示语
		Point point2 = new Point(in.nextDouble(),in.nextDouble());//圆心坐标
		Circle circle1 = new Circle(point2,in.nextDouble());
		point1.showPoint();
		circle1.showCircle();
		circle1.judgement(point1, circle1);
		in.close();
	}

}
相关标签: Java java