(三角形类)设计一个扩展自抽象类GeometricObject的新的Triangle类。绘制Triangle类和GeometricObject类的UML图并实现Triang1e类。编写一个测试程序,提

(三角形类)设计一个扩展自抽象类GeometricObject的新的Triangle类。绘制Triangle类和GeometricObject类的UML图并实现Triang1e类。编写一个测试程序,提示用户输人三角形的三条边、一种颜色以及一个表明该三角形是否填充的布尔值。程序应该根据用户的输人,使用这些边以及颜色和是否填充的信息,创建一个Triangle对象。程序应该显示面积、周长、颜色以及真或者假来表明是否被填充。

GeometricObject的类图如下:

package 抽象类和接口t3;

import java.util.Date;
import java.util.Set;

abstract 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;
    }

    public String getColor() {
        return color;
 
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 设计一个继承了抽象类GeometricObject的Triangle,可以包含以下属性和方法: 属性: - side1: float型,表示三角形的第一条边长 - side2: float型,表示三角形的第二条边长 - side3: float型,表示三角形的第三条边长 方法: - getArea(): 计算并返回三角形的面积 - getPerimeter(): 计算并返回三角形的周长 - isRightTriangle(): 判断三角形是否为直角三角形,返回布尔值 在实现这个时,需要注意以下几点: - 三角形的三条边长必须满足三角形不等式,即任意两边之和大于第三边 - 在计算面积和周长时,可以使用海伦公式和勾股定理 - 判断是否为直角三角形时,可以使用勾股定理判断是否满足a^2 + b^2 = c^2的条件 ### 回答2: Triangle作为继承自抽象类GeometricObject的子,可以拥有抽象类中定义的属性和方法,并在此基础上添加适用于三角形的特定属性和方法。以下是设计一个继承自抽象类GeometricObject的Triangle的示例: ```java //导入需要的库:java.util.Scanner public class Triangle extends GeometricObject { private double side1; private double side2; private double side3; //无参构造函数 public Triangle() { super(); side1 = 0.0; side2 = 0.0; side3 = 0.0; } //带参构造函数 public Triangle(double side1, double side2, double side3) { super(); this.side1 = side1; this.side2 = side2; this.side3 = side3; } //实现抽象方法 public double getArea() { double s = (side1 + side2 + side3) / 2; return Math.sqrt(s * (s - side1) * (s - side2) * (s - side3)); } //实现抽象方法 public double getPerimeter() { return side1 + side2 + side3; } //访问器方法 public double getSide1() { return side1; } //访问器方法 public double getSide2() { return side2; } //访问器方法 public double getSide3() { return side3; } //修改器方法 public void setSide1(double side1) { this.side1 = side1; } //修改器方法 public void setSide2(double side2) { this.side2 = side2; } //修改器方法 public void setSide3(double side3) { this.side3 = side3; } //获取三角形的描述信息 public String toString() { return "Triangle: side1 = " + side1 + ", side2 = " + side2 + ", side3 = " + side3; } //判断是否为等边三角形 public boolean isEquilateral() { return side1 == side2 && side1 == side3; } //判断是否为直角三角形 public boolean isRightAngled() { return side1 * side1 + side2 * side2 == side3 * side3 || side1 * side1 + side3 * side3 == side2 * side2 || side2 * side2 + side3 * side3 == side1 * side1; } //测试 public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Enter the three sides of the triangle: "); double side1 = input.nextDouble(); double side2 = input.nextDouble(); double side3 = input.nextDouble(); Triangle triangle = new Triangle(side1, side2, side3); System.out.println("Triangle area: " + triangle.getArea()); System.out.println("Triangle perimeter: " + triangle.getPerimeter()); System.out.println("Is equilateral? " + triangle.isEquilateral()); System.out.println("Is right angled? " + triangle.isRightAngled()); input.close(); } } ``` 上述代码中,我们创建了一个Triangle的子,并继承了抽象类GeometricObject的属性和方法,通过添加适用于三角形对象的属性(三条边长)和方法(判断是否为等边三角形、判断是否为直角三角形)来使其更加具体化。我们还重写了抽象方法getArea()和getPerimeter(),计算并返回三角形的面积和周长。最后,在main方法中,我们可以通过用户的输入创建一个具体的Triangle对象,并使用其方法来获取三角形的面积、周长以及是否为等边三角形或直角三角形的状态。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq2252351594原清风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值