Java作业(3.30)

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

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

②一个无参的构造方法。

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

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

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

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

复制代码
package work;
//设计一个名为Geometric的几何图形的抽象类,该类包括:

//①两个名为color、filled属性分别表示图形颜色和是否填充。
//
//②一个无参的构造方法。
//
//③一个能创建指定颜色和填充值的构造方法。
//
//④一个名为getArea()的抽象方法,返回图形的面积。
//
//⑤一个名为getPerimeter()的抽象方法,返回图形的周长。
//
//⑥一个名为toString()的方法,返回圆的字符串描述。
abstract class Geometric {//设计一个名为Geometric的几何图形的抽象类
    private String color;
    private boolean filled;//两个名为color、filled属性分别表示图形颜色和是否填充

    public Geometric() {
        System.out.println("无参的构造方法");
    }//无参构造方法;

    public Geometric(String color, boolean filled) {
        this.color = color;
        this.filled = filled;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public boolean getFilled() {
        return filled;
    }

    public void setFilled(boolean filled) {
        this.filled = filled;
    }


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

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


}
复制代码

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

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

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

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

④radius的访问器方法。

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

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

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

复制代码
package work;

//设计一个名为Circle的圆类来实现Geometric类,该类包括:
//
//①一个名为radius的double属性表示半径。
//
//②一个无参构造方法创建圆。
//
//③一个能创建指定radius的圆的构造方法。
//
//④radius的访问器方法。
//
//⑤一个名为getArea()的方法,返回该圆的面积。
//
//⑥一个名为getPerimeter()的方法,返回圆的周长。
//
//⑦一个名为toString()的方法,返回该圆的字符串描述。
public class Circle extends Geometric {
    private double radius;

    public Circle() {
        System.out.println("圆");
    }

    public Circle(String color, boolean filled, double radius) {
        super(color, filled);//调用构造方法
        this.radius = radius;
    }

    public double getRadius() {
        return radius;
    }

    public void setRadius(double radius) {
        this.radius = radius;
    }

    public double getArea() {
        return 3.14 * radius * radius;
    }

    public double getPerimeter() {
        return 2 * 3.14 * radius;
    }

    public String toString() {
        return "圆的颜色是" + getColor() + "圆的面积是" + getArea() + "圆的周长是" + getPerimeter();
    }
}
复制代码

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

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

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

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

④side1和side2的访问器方法。

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

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

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

复制代码
package work;

//设计一个名为Rectangle的矩形类来实现Geometric类,该类包括:
//
//①两个名为side1、side2的double属性表示矩形的两条边。
//
//②一个无参构造方法创建矩形。
//
//③一个能创建指定sidel和side2的矩形的构造方法。
//
//④sidel和sidez的访问器方法。
//
//⑤一个名为getArea()的方法,返回该矩形的面积。
//
//⑥一个名为gelPerimeter()的方法,返回该矩形的周长。
//
//⑦一个名为toString()的方法,返回该矩形的字符串描述。
public class Rectangle extends Geometric {


    private double side1;
    private double side2;

    public Rectangle() {
        System.out.println("矩形");
    }

    public Rectangle(String color, boolean filled, double side1, double side2) {
        super(color, filled);
        this.side1 = side1;
        this.side2 = side2;
    }

    public double getSide1() {
        return side1;
    }

    public void setSide1(double side1) {
        this.side1 = side1;
    }

    public double getSide2() {
        return side2;
    }

    public void setSide2(double side2) {
        this.side2 = side2;
    }

    public double getArea() {
        return side1 * side2;
    }

    public double getPerimeter() {
        return 2 * side1 + 2 * side2;
    }

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

    }
}
复制代码

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

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

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

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

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

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

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

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

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

复制代码
package work;

//设计一个名为Triangle的三角形类来实现Geometric类,该类包括:
//
//①三个名为side1,side2和side3的double属性表示三角形的三条边。
//
//②一个无参构造方法创建三角形。
//
//③一个能创建指定side1,side2和side3的矩形的构造方法。
//
//④sidel,side2和side3的访问器方法。
//
//⑤一个名为getArea()的方法,返回该三角形的面积。
//
//⑥一个名为getPerimeter()的方法,返回该三角形的周长。
//
//⑦一个名为isTriangle()的方法,判断三边是否能构成三角形。
//
//⑧一个名为toString()的方法,返回三边较小的字符串描述。
public class Triangle extends Geometric {
    private double side1;
    private double side2;
    private double side3;

    public Triangle() {
        System.out.println("三角形");
    }

    public Triangle(String color, boolean filled, double side1, double side2, double side3) {
        super(color, filled);
        this.side1 = side1;
        this.side2 = side2;
        this.side3 = side3;
    }

    public double getSide1() {
        return side1;
    }

    public void setSide1(double side1) {
        this.side1 = side1;
    }

    public double getSide2() {
        return side2;
    }

    public void setSide2(double side2) {
        this.side2 = side2;
    }

    public double getSide3() {
        return side3;
    }

    public void setSide3(double side3) {
        this.side3 = side3;
    }

    public double getArea() {
        double s = side1 + side2 + side3 / 2;
        float S = (float) Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));
        return S;
    }

    public double getPerimeter() {
        return side1 + side2 + side3;
    }

    public boolean isTriangle(double side1, double side2, double side3) {
        if (side1 + side2 > side3 && side1 + side3 > side2 && side2 + side3 > side1) {
            return true;
        } else {
            return false;
        }
    }

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

    public String toString(double side1, double side2, double side3) {
        double min;
        if (side1 <= side2 && side1 <= side3) {
            min = side1;
        } else if (side2 <= side1 && side2 <= side3) {
            min = side2;
        } else {
            min = side3;
        }
        return "三角形最小边的值:" + min;
    }
}
复制代码

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

 

复制代码
package work;

public class GeometricTest {
    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(cc.getSide1(), cc.getSide2(), cc.getSide3()));//第二个toString方法
    }
}
复制代码

输出结果:

 

 

posted @   特工607  阅读(790)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示