Java11.1—Triangle类

本文详细介绍了一个使用Java设计的三角形类,该类继承自GeometricObject类,包括三个表示三角形边长的私有数据域,以及计算面积、周长的方法。文章还提供了一个测试程序,用于输入三角形的边长、颜色和填充状态,并展示计算结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用java语言设计一个名为Trangle的类来扩展GeometricObject类,该类包括:

要求:

  • 三个名为side1,side2,side3的double私有数据域表示三角形的三条边,它们默认值为1.0。
  •  一个无参数的构造方法。
  • 一个能创建带指定参数参数s1,s2,s3的构造方法。
  • 一个名为getArea()返回三角形的面积。
  • 一个名为getPerimeter()的方法返回三角形的周长。
  • 一个名为toString()的方法返回三角形的字符串描述

编写一个测试程序,提示用户输入三角形的三条边,颜色以及一个Boolean值表明三角形是否填充。程序应该使用输入创建一个具有这些边并设置color和filled属性的三角形,程序应该显示面积,边长,颜色以及是否填充的真或者假的值。

运行效果

 

代码

GeometricObject:https://blog.youkuaiyun.com/u014757261/article/details/25426395

import java.util.Date;
import java.util.Scanner;
abstract class GeometricObject {
    private String color = "white";
    private boolean filled;
    Date dateCreated;

    protected GeometricObject() {
        dateCreated = new Date();
    }

    protected GeometricObject(String color, boolean filled) {
        this.color = color;
        this.filled = filled;
        Date dateCreated = new Date();
    }

    public String getColor() {
        return color;
    }

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

    public boolean isFilled() {
        return filled;
    }

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

    public Date getDateCreated() {
        return dateCreated;
    }

    public String toString() {
        return "Created on " + dateCreated + "\ncolor " + color +
                " and filled" + filled;
    }

    public abstract double getArea();

    public abstract double getPerimeter();
}
public class Triangle extends GeometricObject{
    private double side1=1.0,side2=1.0,side3=1.0;
    public Triangle(){}
    public Triangle(double...side){
        side1=side[0];
        side2=side[1];
        side3=side[2];
    }
    public double getSide1() {
        return side1;
    }
    public double getSide2() {
        return side2;
    }
    public double getSide3() {
        return side3;
    }
    @Override
    public double getArea() {
        double s=(side1+side2+side3)/2;
        return Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));
    }
    @Override
    public double getPerimeter() {
        return side1+side2+side3;
    }

    @Override
    public String toString() {
        return "Triangle:side1 = "+side1+" side2 = "+side2+" side3 ="+side3;
    }
    public static void main(String[] args){
        System.out.print("请输入三角形的三条边:");
        Scanner input=new Scanner(System.in);
        Triangle my=new Triangle(input.nextDouble(),input.nextDouble(),input.nextDouble());
        System.out.print("请输入三角形的颜色:");
        my.setColor(input.next());
        System.out.print("请输入三角形的是否填充:");
        my.setFilled(input.nextBoolean());
        System.out.printf("三角形属性如下:\n面积:%.2f\n边长:%s\n颜色:%s\n是否填充:%s",my.getArea(),my.toString(),my.getColor(),my.isFilled());
    }
}

 

 

设计Java中的Triangle时,通常会考虑以下几个方面: 1. **属性**: - 三角形有三条边,所以可以定义三个长度属性,如`Side a`, `Side b`, 和 `Side c`。这里假设我们有一个`Side`内部表示边长,它包含边长的值。 ```java class Side { private double length; // 构造函数、getter和setter方法 } class Triangle { private Side sideA; private Side sideB; private Side sideC; } ``` 2. **构造方法**: - 初始化三角形需要三条边的长度,所以需要一个默认构造函数和至少接受三边长度的构造函数。 ```java public Triangle(double a, double b, double c) { this.sideA = new Side(a); this.sideB = new Side(b); this.sideC = new Side(c); // 检查是否能构成有效的三角形(例如:任意两边之和大于第三边) validateTriangle(); } // 默认构造函数 public Triangle() { this(0, 0, 0); // 这里抛出异常或设置默认值 } ``` 3. **方法**: - 可能包括计算面积(如海伦公式)和判断是否为等边、等腰或直角三角形等辅助方法。 ```java private double area() { // 使用海伦公式计算面积 } public boolean isEquilateral() { return Math.abs(sideA.getLength() - sideB.getLength()) < EPSILON && Math.abs(sideA.getLength() - sideC.getLength()) < EPSILON && Math.abs(sideB.getLength() - sideC.getLength()) < EPSILON; } public boolean isIsosceles() { return Math.abs(sideA.getLength() - sideB.getLength()) < EPSILON || Math.abs(sideA.getLength() - sideC.getLength()) < EPSILON || Math.abs(sideB.getLength() - sideC.getLength()) < EPSILON; } public boolean isRightangled() { // 实现判断直角的方法 } private void validateTriangle() { if (sideA.getLength() + sideB.getLength() <= sideC.getLength() || ... // 其他条件检查 throw new IllegalArgumentException("Invalid triangle sides"); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值