0
点赞
收藏
分享

微信扫一扫

Java、三角形类Triangle

惠特曼 2022-03-19 阅读 61


package pack1;

import java.util.Date;

public class GeometricObject {
    private String color;   //颜色
    private boolean filled; //是否填充
    private Date dateCreated;   //创建日期

    protected GeometricObject() {
    }

    /**带指定颜色和是否填充的构造方法*/
    protected GeometricObject(String color, boolean filled) {
        this.color = color;
        this.filled = filled;
    }

    /**返回颜色*/
    protected String getColor() {
        return color;
    }

    /**设置颜色*/
    protected void setColor(String color) {
        this.color = color;
    }

    /**返回是否填充(ture/false)?*/
    protected boolean isFilled() {
        return filled;
    }

    /**设置填充*/
    protected void setFilled(boolean filled) {
        this.filled = filled;
    }

    /**返回创建日期*/
    protected Date getDateCreated() {
        return dateCreated;
    }

    @Override   /**返回颜色和填充的字符串*/
    public String toString() {
        return "Color = " + color + "Filled = " + filled;
    }
}














package pack1;

import java.util.Scanner;

public class Triangle extends GeometricObject {
    private double side1, side2, side3; //三角形的三条边

    /**带默认值的无参构造方法*/
    public Triangle() {
        this(1, 1, 1);
    }

    /**带指定三边的构造方法*/
    public Triangle(double side1, double side2, double side3) {
        this.side1 = side1;
        this.side2 = side2;
        this.side3 = side3;
    }

    /**返回三角形面积*/
    public double getArea() {
        if(!isValid()) return 0;
        double s = (side1 + side2 + side3) / 2;
        return Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));
    }

    /**返回周长*/
    public double getPerimeter() {
        if (!isValid()) return 0;
        return side1 + side2 + side3;
    }

    /**返回边长是否有效?*/
    private boolean isValid() {
        if (side1 + side2 <= side3 || side1 + side3 <= side2 || side2 + side3 <= side1)
            return false;
        return true;
    }

    @Override   /**返回三条边的字符串*/
    public String toString() {
        return "Triangle: side1 = " + side1 + "side2 = " + side2 + "side3 = " + side3;
    }

    /**返回边1*/
    public double getSide1() {
        return side1;
    }

    /**返回边2*/
    public double getSide2() {
        return side2;
    }

    /**返回边3*/
    public double getSide3() {
        return side3;
    }

    public static void main(String[] args) {
        try(Scanner input = new Scanner(System.in);) {
            System.out.print("Enter three sides of a triangle: ");
            Triangle triangle = new Triangle(input.nextDouble(), input.nextDouble(), 
                                 input.nextDouble());

            System.out.print("Enter color of the triangle: ");
            triangle.setColor(input.next());

            System.out.print("Enter whether it needed to fill(true or false): ");
            triangle.setFilled(input.nextBoolean());

            System.out.println("\nArea: " + triangle.getArea() +
                                "\nPerimeter: " + triangle.getPerimeter() +
                                "\nColor: " + triangle.getColor() +
                                "\nFilled: " + triangle.isFilled());
        }
    }
}

举报

相关推荐

0 条评论