【发布时间】:2020-07-04 18:09:37
【问题描述】:
设计一个扩展 GeometricObject 的名为 Triangle 的类。该类包含:
一个。三个名为 side1、side2 和 side3 的双精度数据字段,默认值为 1.0,表示三角形的三个边。
b.创建默认三角形的无参数构造函数。
c。一个构造函数,用于创建具有指定边 1、边 2 和边 3 的三角形。
d。所有三个数据字段的访问器方法。
e。一个名为 getArea() 的方法,它返回这个三角形的面积。
f。一个名为 getPerimeter() 的方法,它返回这个三角形的周长。
g.一个名为 toString() 的方法,它返回三角形的字符串描述。
三角形面积的计算公式是: s = (side1 + side2 + side3)/2; 面积 = s(s – side1) (s – side2) (s – side3)
toString() 方法实现如下: 返回“三角形:side1 = “ + side1 + “side2 = “ + side2 + “side3 = “ + side3;
编写一个测试程序,提示用户输入三角形的三个边,一个颜色,一个布尔值来表示三角形是否被填充。程序应该创建一个具有这些边的三角形对象,并使用输入设置颜色和填充属性。程序应该显示面积、周长、颜色,以及判断是否填充的真假。
我试过这个问题,代码如下,但是Triangle类有错误,我不知道如何解决。
//Triangle Class
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 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 = side2;
}
public double getArea()
{
double area,s;
s = (side1+side2+side3)/2;
area = Math.sqrt(s * (s- side1) * (s - side2) * (s - side3));
return area;
}
public double getPerimeter()
{
return side1 + side2 + side3;
}
public String toString()
{
return " Triangle: Side 1 = " + side1 + " Side 2 = " + side2
+ " Side 3 = " + side3;
}
}
//GeometricObject Class
public class GeometricObject
{
protected String color = "white";
protected boolean filled;
public GeometricObject(String color, boolean filled)
{
this.color = color;
this.filled = filled;
}
//getColor()
public String getColor()
{
return color;
}
//setColor
public void setColor(String color)
{
this.color = color;
}
//isFilled
public boolean isFilled()
{
return filled;
}
//setFilled
public void setFilled(boolean filled)
{
this.filled = filled;
}
}
//Test Program
public class Lab82
{
private double side1 = 1.0;
private double side2 = 1.0;
private double side3 = 1.0;
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("Enter three sides of the Triangle");
double side1 = input.nextDouble();
double side2 = input.nextDouble();
double side3 = input.nextDouble();
System.out.println("Enter the color of the Triangle");
String color = input.next();
System.out.println(" Is the Triangle filled? Reply with 'True' or 'False' ");
String filled = input.next();
Triangle triangle = new Triangle(side1, side2, side3);
System.out.println("The Triangle Sides are \n side 1: " + triangle.getSide1() + "\n Side 2: " + triangle.getSide2() + "\n Side 3: " + triangle.getSide3());
System.out.println("The Triangle's Area is " + triangle.getArea());
System.out.println("The Triangle's Perimeter is "+ triangle.getPerimeter());
System.out.println("The Triangle's Color is " + triangle.getColor());
System.out.println("Is the Triangle filled? " + triangle.isFilled());
}
}
【问题讨论】:
标签: java class inheritance