吉软_Java_第六次作业

b40f7420bbe825c7354eb23f4b89677d924c7c55_1_690x279.pngb45c1bb4043c2c0e1254ae238bfc6b2af462ce3a_1_690x279.png

编写一个圆类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类1243d67a211a2e8d13c1c6088ccd0667e7c647b6.png

1.

package org.jsoft;
public class Point {
    private int x,y;
    
    public Point(int x,int y){
        System.out.println("初始坐标:("+x+","+y+")");
    }
    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;
    }
        public int display(int a,int b){
            System.out.println("The point is at:("+a+","+b+")");
            return x ;
        }
}

2.

package org.jsoft;

public class Rectangle {
    private Point point;
    private int width;
    private int height;
    private int x;
    private int y;
    public Rectangle(int x,int y,int width,int height){
        System.out.println("这个矩形坐标为:"+"("+x+","+y+")");
        System.out.println("这个矩形的宽高为:"+"("+width+","+height+")");
    }
    public int getX(){
        return x;
    }
    public void setX(int x){
        this.x = x;
        System.out.println("更改x坐标:"+x);
    }
    public int getY(){
        return y;
    }
    public void setY(int y){
        this.y  =y;
        System.out.println("更改x坐标:"+y);
    }
    public int getWidth(){
        return width;
    }
    public void setWidth(int width){
        this.width = width;
    }
    public int getHeight(){
        return height;
    }
    public void setHeight(int height){
        this.height = height;
    }
    
    public void display(){
        System.out.println("矩形的宽和高是:"+width+","+height);
    }
    public String getArea(){
        return "矩形面积为:" + height*width;
    }
    
}

//测试

package org.jsoft;

import java.util.Scanner;

public class TextRectangle {

    public static void main(String[] args) {
        Rectangle r=new Rectangle(0,0,0,0);
        Scanner sc=new Scanner(System.in);
        
        System.out.println("请输入x:");
        r.setX(sc.nextInt());
        
        System.out.println("请输入y:");
        r.setY(sc.nextInt());
        
        System.out.println("请输入width:");
        r.setWidth(sc.nextInt());
        
        System.out.println("请输入height:");
        r.setHeight(sc.nextInt());
        
        r.display();
        String m = r.getArea();
        System.out.println(m);
    }


}

3.

package org.jsoft;

public class Circle {
    private Point p;
    private float r;
    
    
    public Circle(double x,double y,double r){
        
    }
    public Circle(int x,int y,float r){
        }
    public Circle(Point p, float r){}
    public Circle(Circle c){}
    
    public Point getP(){
        return p;
    }
    public void setP(int x,int y){
        p = new Point(x,y);
    }
    public float getR(){
        return r;
    }
    public void setR(float r){
        this.r=r;
    }
    public boolean isInside(Point p){
        double result=((p.getX()-this.p.getX())*(p.getX()-this.p.getX()))+((p.getY()-this.p.getY())*(p.getY()-this.p.getY()));
        if(result<=r*r){
            return true;
        }else return false;
    }
    public String outerRect(Rectangle r){
        int a=r.getX()+r.getWidth()/2;
        int b=r.getY()+r.getHeight()/2;
        double d=(a-r.getX())*(a-r.getX())+(b-r.getY())*(b-r.getY());
        return "外接圆圆心:"+a+","+b+"  " + "半径:"+d;
    }
    public Circle join(Circle c1, Circle c2){        
        double r= Math.sqrt((c1.getP().getX()-c2.getP().getX())*(c1.getP().getX()-c2.getP().getX())+(c1.getP().getY()-c2.getP().getY())*(c1.getP().getY()-c2.getP().getY()))/2;
        double x = Math.abs(Math.abs(c1.getP().getX())-Math.abs(c2.getP().getX()))/2;
        double y = Math.abs(Math.abs(c1.getP().getY())-Math.abs(c2.getP().getY()))/2;
        Circle c=new Circle(x,y,r);
        return c;
    }
}

//测试

package org.jsoft;

import java.util.Scanner;

public class TextCircle {
    public static void main(String[] args) {
        Circle c=new Circle(0, 0, 0);
        Point p=new Point(0,0);
        Rectangle l=new Rectangle(0,0,0,0);
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入圆心坐标:");
        c.setP(sc.nextInt(), sc.nextInt());
        System.out.println("请输入圆的半径:");
        c.setR(sc.nextFloat());
        
        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("请输入矩形的x:");
        l.setX(sc.nextInt());
        System.out.println("请输入矩形的y:");
        l.setY(sc.nextInt());
        System.out.println("请输入矩形的宽:");
        l.setWidth(sc.nextInt());
        System.out.println("请输入矩形的高:");
        l.setHeight(sc.nextInt());
        System.out.println(c.outerRect(l));
    }
}

转载于:https://my.oschina.net/u/3716148/blog/1569904

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值