(Triangle类)设计一个名为Triangle的类来继承GeometricObject类。

(Triangle类)设计一个名为Triangle的类来继承GeometricObject类。该类包括:

三个名为side1,side2,side3的double类型数据域来表示这个三角形的三条边,它们的默认值是1.0。

一个无参构造方法,创建一个默认的三角形。

一个创建指定side1,side2,side3值的三角形的构造方法。

所有三个数据域的访问器方法。

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

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

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

   计算三角形面积的公式参见编程练习题2.19.toString()方法的实现如下所示:

return "Triangle:side1="+side1+"side2+"side2="+side2+"side3="+side3;

画出triangle类和GeometricObject类的UML图,并实现这些类。编写一个测试程序,提示用户输入三角形的三条边,颜以及一个boolean值表明该三角形是否填充。程序需要根据输入创建一个具有指定边的三角形,并设置color和filled属性。程序需要显示面积,周长,颜色以及表明是否填充的真或假值。

代码如下:

//GeometricObject.java

package demo2;

 

public class GeometricObject

{

private String color="white";

private boolean filled;

private java.util.Date dateCreated;

public GeometricObject()

{

dateCreated=new java.util.Date();

}

public GeometricObject(String color,boolean filled)

{

dateCreated=new java.util.Date();

this.color=color;

this.filled=filled;

}

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 java.util.Date getDateCreated()

{

return dateCreated;

}

public String toString()

{

return "created on"+dateCreated+"\ncolor:"+color+"and filled:"+filled;

}

 

public static void main(String[] args) {

// TODO Auto-generated method stub

 

}

 

}

 

 

//Triangle.java

package demo2;

 

import java.util.*;

public class Triangle extends GeometricObject

{

private double side1=1.0;

private double side2=1.0;

private double side3=1.0;

public Triangle()

{

}

public Triangle(double side1,double side2,double side3)

{

this.side1=side1;

this.side2=side2;

this.side3=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 double getSide1()

{

return side1;

}

public double getSide2()

{

return side2;

}

public double getSide3()

{

return side3;

}

public double getArea()

{

double result;

double s=(side1+side2+side3)/2;

result=Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));

return result;

}

public double getPerimeter()

{

return side1+side2+side3;

}

public String toString()

{

return "Triangle:side1="+side1+"side2="+side2+"side3="+side3;

}

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner input=new Scanner(System.in);

Triangle triangle=new Triangle();

System.out.println("请输入三角形的三边");

double side1=input.nextDouble();

double side2=input.nextDouble();

double side3=input.nextDouble();

triangle=new Triangle(side1,side2,side3);

System.out.println("请输入三角形的颜色"); 

input.nextLine();

String color=input.nextLine();

System.out.println("请输入是否填充"); 

boolean filled=input.nextBoolean();

triangle.setColor(color);

triangle.setFilled(filled);

 

System.out.println("三角形面积为:"+triangle.getArea());

System.out.println("三角形周长为:"+triangle.getPerimeter());

System.out.println("三角形颜色为:"+triangle.getColor());

System.out.println("三角形是否填充:"+filled);

 

}

}

为1.0的构造方法,一个计算周长的方法,一个计算面积的方法,以及相应的访问器和修改器方法。 设计思路: 1. 继承GeometricObject,Triangle需要继承GeometricObject的属性和方法。 2. 定义三个浮点型数据域side1、side2、side3,表示三角形的三个边。 3. 编写构造方法,可以构造默认一个三角形,也可以执行三边分别为1.0的构造方法。 4. 编写计算周长的方法,使用公式:周长 = side1 + side2 + side3。 5. 编写计算面积的方法,使用海伦公式:面积 = √[s(s-side1)(s-side2)(s-side3)],其中s = (side1 + side2 + side3) / 2。 6. 编写相应的访问器和修改器方法,可以获取和修改三个边的值。 代码实现如下: ``` public class Triangle extends GeometricObject { private double side1; private double side2; private double side3; public Triangle() { side1 = 1.0; side2 = 1.0; side3 = 1.0; } public Triangle(double side1, double side2, double side3) { 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 getPerimeter() { return side1 + side2 + side3; } public double getArea() { double s = (side1 + side2 + side3) / 2; return Math.sqrt(s * (s - side1) * (s - side2) * (s - side3)); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值