封装(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在圆外!");
}
}
}
//
构建圆类
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;
}
}