java如何计算点和圆的关系_java封装的使用(判断某点与圆的关系)

java的三大特征之一,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装、隐藏起来的方法。

package com_days;

import java.util.Scanner;

public class test {

public static void main(String[]

args) {

//定义一“圆”(circle)类,圆心为“点”point类,构造一圆,求圆的周长和面积,

并判断某点与圆的关系。

//Scanner函数调用

Scanner scanner = new

Scanner(System.in);

//实例化圆对象

Circle o = new Circle();

System.out.println("请输入半径值r:");

int r =scanner.nextInt();

o.setRadius(r);//半径赋值

System.out.println("请输入圆心x坐标:");

int x =scanner.nextInt();

o.point.setX(x);//圆心x坐标赋值

System.out.println("请输入圆心y坐标:");

int y =scanner.nextInt();

o.point.setY(y);//圆心y坐标赋值

//实例化点坐标

Point p1 = new Point();

System.out.println("请输入p点x坐标:");

int x1 =scanner.nextInt();

p1.setX(x1);//点p1 X坐标赋值

System.out.println("请输入p点y坐标:");

int y1 =scanner.nextInt();

p1.setY(y1);//点p1 Y坐标赋值

//计算周长

int L = (int)

(2*Math.PI*o.getRadius());

System.out.println("圆的周长为:"+L+"

cm");

//计算面积

int S = (int)

(Math.PI*Math.pow(o.getRadius(), 2));

System.out.println("圆的面积为:"+S+"

cm^2");

//判断点p1与圆o的关系

if

(Math.pow((p1.getX()-o.point.getX()),

2)+Math.pow((p1.getY()-o.point.getY()), 2)

System.out.println("点p1在圆内!");

}else

if(Math.pow((p1.getX()-o.point.getX()),

2)+Math.pow((p1.getY()-o.point.getY()),2)

>Math.pow(o.getRadius(), 2)) {

System.out.println("点p1在圆外!");

}else {

System.out.println("点p1在圆上!");

}

}

}

//构建圆类

class Circle{

int radius;//半径

Point point = new

Point();//实例化圆心

//空参数构造函数

public Circle() {

super();

}

//使用set、get方法

public int getRadius() {

return radius;

}

public void setRadius(int radius)

{

this.radius = radius;

}

public Point getPoint() {

return point;

}

public void setPoint(Point point)

{

this.point = point;

}

}

//构建点类

class Point{

int x;

int y;

//空参数构造函数

public Point() {

super();

}

//使用set、get方法

public int getX() {

return x;

}

public void setX(int x) {

this.x = x;

}

public int getY() {

return y;

}

public void setY(int y) {

this.y = y;

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值