Java、三角形类Triangle


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());
        }
    }
}

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值