作业2

(1)设计一个名为Geometric的几何图形的抽象类,该类包括:

①两个名为color、filled属性分别表示图形颜色和是否填充。

②一个无参的构造方法。

③一个能创建指定颜色和填充值的构造方法。

④一个名为getArea()的抽象方法,返回图形的面积。

⑤一个名为getPerimeter()的抽象方法,返回图形的周长。

⑥一个名为toString()的方法,返回该几何图形的字符串描述。

package com.sdbi.kong;

public  abstract class Geometric {
    private String color;//图形颜色
    private boolean filled;//是否填充
    public Geometric (){//无参的构造方法
        
    }
    public Geometric(String color,boolean filled) {
        this.color=color;
        this.filled=filled;

}
    public String getColor() {
        return color;
    }
       public boolean getFilled() {
            return filled;
        }

    abstract double getArea();//一个名为getArea()的抽象方法,返回图形的面积
    abstract double getPermeter();//一个名为getPerimeter()的抽象方法,返回图形的周长
    @Override
    public String toString() {//一个名为toString()的方法,返回该几何图形的字符串描述
        return "Geometric [color=" + color + ", filled=" + filled + ", getArea()=" + getArea() + ", getPermeter()="
                + getPermeter() + ", getClass()=" + getClass() + ", hashCode()=" + hashCode() + ", toString()="
                + super.toString() + "]";
    }
    
    
    
    
    
    
    
}

(2)设计一个名为Circle的圆类来实现Geometric类,该类包括:

①一个名为radius的double类型私有属性表示半径。

②一个无参构造方法创建圆。

③一个能创建指定radius的圆的构造方法。

④radius的访问器方法。

⑤一个名为getArea()的方法,返回该圆的面积。

⑥一个名为getPerimeter()的方法,返回圆的周长。

⑦一个名为toString()的方法,返回该圆的字符串描述。

package com.sdbi.kong;

public   class Circle extends Geometric {
    public double radius;//一个名为radius的double类型私有属性表示半径
    public Circle() {//一个无参构造方法创建圆。
        System.out.println("圆");
    }
    public Circle(String color, boolean filled,double radius) {//一个能创建指定radius的圆的构造方法。
        super(color,filled);
        this.radius=radius;
    }
    public double getRadius() {//radius的访问器方法
        return radius;
    }
    public void setRadius(double redius ) {
        this.radius=redius;
    }
    public double getArea() {//一个名为getArea()的方法,返回该圆的面积。
        return 3.14*radius*radius;
    }
    public double getPerimenter() {//一个名为getPerimeter()的方法,返回圆的周长
        return 2*3.14*radius;
        
    }
    @Override
    public String toString() {//一个名为toString()的方法,返回该圆的字符串描述
        return "圆的颜色"+getColor()+"圆的面积"+getArea()+"圆的周长"+getPerimenter();
    }
    @Override
    double getPermeter() {
        // TODO Auto-generated method stub
        return 0;
    }

    

}

(3)设计一个名为Rectangle的矩形类来实现Geometric类,该类包括:

①两个名为side1、side2的double类型私有属性表示矩形的两条边。

②一个无参构造方法创建矩形。

③一个能创建指定sidel和side2的矩形的构造方法。

④side1和side2的访问器方法。

⑤一个名为getArea()的方法,返回该矩形的面积。

⑥一个名为gelPerimeter()的方法,返回该矩形的周长。

⑦一个名为toString()的方法,返回该矩形的字符串描述。

package com.sdbi.kong;

public   class Rectangle extends Geometric{
    
        private double side1;
        private double side2; 
        public  Rectangle(){
            
        }
    public Rectangle(String color, boolean filled,double side1,double side2) {
        super(color, filled);
        this.side1=side1;
        this.side2=side2;
        
    }
    public double gteSide1() {
        return side1;
    }
    public double gteSdie1() {
        return side2;
    }
    public double getArea() {
        return side1*side2;
    }
    public double getPerimeter() {
        return side1*2+side2*2;
    }
     public String toString() {
            return "矩形的颜色:" + getColor() + "矩形的填充:" + getFilled() + "矩形的面积:" + getArea() + "矩形的周长:" + getPerimeter();

        }
    
    @Override
    double getPermeter() {
        // TODO Auto-generated method stub
        return 0;
    }
    
    }
    
    
    

(4)设计一个名为Triangle的三角形类来实现Geometric类,该类包括:

①三个名为side1,side2和side3的double类型私有属性表示三角形的三条边。

②一个无参构造方法创建三角形。

③一个能创建指定side1,side2和side3的矩形的构造方法。

④side1,side2和side3的访问器方法。

⑤一个名为getArea()的方法,返回该三角形的面积。

⑥一个名为getPerimeter()的方法,返回该三角形的周长。

⑦一个名为isTriangle()的方法,判断三边是否能构成三角形。

⑧一个名为toString()的方法,返回三边较小的字符串描述。

package com.sdbi.kong;



public class Triangle extends Geometric{
    
    private double side1,side2,side3;
    public double s;
    public Triangle() {
        
    }

    public  Triangle(String color, boolean filled,double side1,double side2,double side3) {
         super(color, filled);
        this.side1=side1;
        this.side2=side2;
        this.side3=side3;
        s=side1+side2+side3;
        
    }
    public double getSide1() {
        return side1;
        
    }
    public double getSide2() {
        return side2;
        
    }
    public double getSide3() {
        return side3;
        
    }
    public double getArea() {
        return Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));
    }
    public double getPerimeter() 
    {
        return s;
    }
    public boolean isTriangle() {
        if (side1+side2>side3&side1+side3>side2&side2+side3>side1) {
            return true;
        }else  {
            return false;
        }
        
        
    }

     public String toString() {
            return "三角形颜色:" + getColor() + "三角形填充:" + getFilled() + "三角形面积:" + getArea() + "三角形周长:" + getPerimeter();
        }

    

    

    @Override
    double getPermeter() {
        // TODO Auto-generated method stub
        return 0;
    }

    
    }

(5)编写测试类,测试图形的面积和周长。

 

package com.sdbi.kong;

public class Test {
    public static void main(String[] args) {
        Circle aa = new Circle("蓝色", true, 1);
        System.out.println(aa.toString());
        Rectangle dd = new Rectangle("黑色", false, 6, 7);
        System.out.println(dd.toString());
        Triangle bb = new Triangle("蓝色", true, 3, 4, 5);
        System.out.println(bb.toString());
        Triangle cc = new Triangle("蓝色", true, 3, 4, 5);//同一个构造方法,不同的tostring
        System.out.println(cc.toString());//第二个toString方法
    }
}

 

 

posted @ 2022-04-04 16:40  Mr-Kong  阅读(175)  评论(0)    收藏  举报