Point类:
package org.jisoft.ZuoYe;
public class Point {
int x,y;
public Point(int x,int y){
this.x = x;
this.y = y;
System.out.println("初始化坐标:");
System.out.println("("+x+","+y+")");
}
public void setX(int x1){
System.out.println("获得x坐标:" + x1);
x = x1 ;
}
public int getX(){
return x;
}
public void setY(int y1){
System.out.println("获得x坐标:" + y1);
y = y1 ;
}
public int getY(){
return y;
}
public int display(int x,int y){
System.out.println("Point坐标为:" + "("+ getX() + "," + getY() +")");
return y;
}
}
测试Point类:
package LianXi171105;
import java.util.Scanner;
public class TestPoint {
public static void main(String[] args) {
Point p1 = new Point(0,0);
Scanner sc = new Scanner(System.in);
System.out.println("请设定x坐标:");
int a = sc.nextInt();
p1.setX(a);
System.out.println("请设定y坐标:");
int b = sc.nextInt();
p1.setY(b);
p1.display(a,b);
}
}
Rectangle类:
package org.jisoft.ZuoYe;
public class Rectangle {
int x,y;
int width;
int height;
public Rectangle(int x,int y,int width,int height){
System.out.println("初始化坐标为:" + "(" + x + "," + y + ")");
System.out.println("初始化宽为:" + width);
System.out.println("初始化长为:" + height);
}
public void setX(int x1){
x = x1;
System.out.println("x轴坐标为:" + x1);
}
public int getX(){
return x;
}
public void setY(int y1){
x = y1;
System.out.println("y轴坐标为:" + y1);
}
public int getY(){
return y;
}
public void setWidth(int width){
this.width=width;
System.out.println("矩形宽为:" + width);
}
public int getWidth(){
return width;
}
public void setHeight(int height){
this.height=height;
System.out.println("矩形高为:" + height);
}
public int getHeight(){
return height;
}
测试Rectangle类:
package org.jisoft.ZuoYe;
import java.util.Scanner;
public class TestRectangle {
public static void main(String[] args) {
Rectangle rec1 = new Rectangle(0,0,0,0);
Scanner sc = new Scanner(System.in);
System.out.println("请设置矩形x轴坐标:");
rec1.setX(sc.nextInt());
System.out.println("请设置矩形y轴坐标:");
rec1.setY(sc.nextInt());
System.out.println("请设置矩形宽度:");
rec1.setWidth(sc.nextInt());
System.out.println("请设置矩形高度:");
rec1.setHeight(sc.nextInt());
rec1.display();
System.out.println("矩形面积为:" +rec1.getArea());
}
}
编写一个圆类Circle
要求:
1. 该类拥有两个属性:
1) Point p代表圆心
2) float radius代表半径
2. 构造方法
1) Circle()
2) Circle(Point p, float r)
3) Circle(int x, int y, float r) //x, y代表圆心的两个坐标
4) Circle(Circle c)
3. 普通方法
0) 一系列get/set方法:
getPoint(), setPoint(Point p), setPoint(int x, int y)
getRadius(), setRadius(float r)
1) public boolean isInside(Point p) //判断一个点是否在圆内
2) public Circle outerRect(Rectangle r) //返回一个矩形的外接圆
3) public Circle join(Circle c1, Circle c2) //返回两个参数圆的最小外接圆
4) public float distance(Circle c1, Circle c2) //返回两个参数圆圆心之间的距离
5) public String toString()
//返回本圆的基本信息,格式为(圆心x坐标值,圆心y坐标值,圆半径)。如:
(0, 0, 2)
4. 编写一个带main函数的测试类,测试Circle类
Circle类:
package org.jisoft.Circle;
import org.jisoft.ZuoYe.Point;
import org.jisoft.ZuoYe.Rectangle;
public class Circle {
Point p ;
double r;
int x,y,x1,y1;
public Circle(Point p,double r){
System.out.println("初始化圆心坐标为:" + "(" + x + "," + y + ")");
System.out.println("初始化半径为:" + r);
}
public Circle(){
}
public Circle(Circle c){
}
public Circle(int x, int y, double r){ //x, y代表圆心的两个坐标
x1 = x;
y1 = y;
this.r = r;
}
public void setPoint(Point p){
this.p = p;
}
public Point getPoint(){
return p;
}
public void setPoint(int x,int y){
this.x = x;
this.y = y;
}
public void setR(int r){
this.r = r;
}
public double getR(){
return r;
}
//判断一个点是否在圆内
public boolean isInside(Point p){
double a = (p.getX()-x)*(p.getX()-x)+(p.getY()-y)*(p.getY()-y);
if(a<=r*r){
return true;
}
else return false;
}
//返回一个矩形的外接圆
public String outerRect(Rectangle r) {
double x = r.getX()+r.getWidth()/2 ;
double y = r.getY()+r.getHeight()/2 ;
double r1 = Math.sqrt((r.getWidth()/2)*(r.getWidth()/2)+(r.getHeight()/2)*(r.getHeight()/2));
return "矩形外接圆坐标、半径为:" + x + "," + y + " " + r1;
}
//返回两个参数圆的最小外接圆
public Circle join(Circle c1, Circle c2){
double r1 = (Math.sqrt((c1.getPoint().getX()-c2.getPoint().getX())*(c1.getPoint().getX()-c2.getPoint().getX())+(c1.getPoint().getY()-c2.getPoint().getY())*(c1.getPoint().getY()-c2.getPoint().getY()))+
c1.getR()+c2.getR())/2;
int x = Math.abs(c1.getPoint().getX()-c2.getPoint().getX())/2;
int y = Math.abs(c1.getPoint().getY()-c2.getPoint().getY())/2;
System.out.println("最小外接圆坐标为:" + "(" + x + "," + y +")" + " " + "半径为:" + r1);
return null;
}
//返回两个参数圆圆心之间的距离
public double distance(Circle c1,Circle c2){
double d = Math.sqrt((c1.getPoint().getX()-c2.getPoint().getX())*(c1.getPoint().getX()-c2.getPoint().getX())+
(c1.getPoint().getY()-c2.getPoint().getY())*(c1.getPoint().getY()-c2.getPoint().getY()));
return d;
}
测试Circle类:
package org.jisoft.Circle;
import java.util.Scanner;
import org.jisoft.ZuoYe.Point;
import org.jisoft.ZuoYe.Rectangle;
public class TestCircle {
public static void main(String[] args) {
Circle c = new Circle(0,0,0);
Point p = new Point(0,0);
Rectangle rec = new Rectangle(0,0,0,0);
Scanner sc = new Scanner(System.in);
System.out.println("请设定圆心坐标:");
c.setPoint(sc.nextInt(),sc.nextInt());
System.out.println("请设定圆半径:");
c.setR(sc.nextInt());
System.out.println("判断一个点是否在设定圆内:");
System.out.println("请设定该点x轴坐标:");
p.setX(sc.nextInt());
System.out.println("请设定该点y轴坐标:");
p.setY(sc.nextInt());
if(c.isInside(p)){
System.out.println("测试点在设定圆内");
}
else System.out.println("测试点不在设定圆内");
System.out.println("***********返回一个矩形的外接圆**************");
System.out.println("请设定矩形x轴坐标:");
rec.setX(sc.nextInt());
System.out.println("请设定矩形y轴坐标:");
rec.setY(sc.nextInt());
System.out.println("请设定矩形宽度:");
rec.setWidth(sc.nextInt());
System.out.println("请设定矩形高度:");
rec.setHeight(sc.nextInt());
System.out.println(c.outerRect(rec));
Circle c1 = new Circle();
Circle c2 = new Circle();
System.out.println("请设定c1圆心坐标:");
System.out.println("请设定圆心坐标:");
c1.p=new Point(sc.nextInt(),sc.nextInt());
System.out.println("请设定c1圆半径:");
c1.setR(sc.nextInt());
System.out.println("请设定c2圆心坐标:");
System.out.println("请设定圆心坐标:");
c2.p = new Point(sc.nextInt(),sc.nextInt());
System.out.println("请设定c2圆半径:");
c2.setR(sc.nextInt());
Circle c3 = new Circle();
c3.join(c1,c2);
System.out.println("***************返回两个参数圆圆心之间的距离**************");
Circle c4 = new Circle();
Circle c5 = new Circle();
System.out.println("请设定c4圆心坐标:");
System.out.println("请设定圆心坐标:");
c4.p = new Point(sc.nextInt(),sc.nextInt());
System.out.println("请设定c4圆半径:");
c4.setR(sc.nextInt());
System.out.println("请设定c5圆心坐标:");
System.out.println("请设定圆心坐标:");
c5.p = new Point(sc.nextInt(),sc.nextInt());
System.out.println("请设定c5圆半径:");
c5.setR(sc.nextInt());
Circle c6 = new Circle();
System.out.println("直线距离为:" +c6.distance(c4,c5));
}
}
运行结果: