在Java中设计一个名为Triangle的类
设计一个名为Triangle的类来扩展GeometricObject。该类包含: a。三个名为side1、side2和side3的双数据字段,默认值为1.0,表示三角形的三条边 b。创建默认三角形的无参数构造函数 c。创建具有指定边1、边2和边3的三角形的构造函数 d。所有三个数据字段的访问器方法 e。一个名为getArea()的方法,返回此三角形的面积 f。一个名为getPermiture()的方法,该方法返回此三角形的周长 g。名为toString()的方法,该方法返回三角形的字符串描述 计算三角形面积的公式为: s=(边1+边2+边3)/2; 面积=s(s–侧1)(s–侧2)(s–侧3) toString()方法的实现如下所示: return“Triangle:side1=“+side1+”side2=“+side2+”side3=“+side3 编写一个测试程序,提示用户输入三角形的三条边、一种颜色和一个布尔值,以指示三角形是否已填充。该程序应使用这些边创建一个三角形对象,并使用输入设置颜色和填充属性。该程序应显示面积、周长、颜色以及真或假to说明是否已填写 我试过这个问题,代码如下,但是三角形类中有一个错误,我不知道如何修复它在Java中设计一个名为Triangle的类,java,class,inheritance,Java,Class,Inheritance,设计一个名为Triangle的类来扩展GeometricObject。该类包含: a。三个名为side1、side2和side3的双数据字段,默认值为1.0,表示三角形的三条边 b。创建默认三角形的无参数构造函数 c。创建具有指定边1、边2和边3的三角形的构造函数 d。所有三个数据字段的访问器方法 e。一个名为getArea()的方法,返回此三角形的面积 f。一个名为getPermiture()的方法,该方法返回此三角形的周长 g。名为toString()的方法,该方法返回三角形的字符串描述 计
//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;
}
}
我得到的错误如下:
当您的类扩展另一个没有默认(无参数)构造函数的类时,您应该告诉java在构造子类的实例时如何构造其父类。在您的情况下,java不知道如何为父构造函数提供
color
和filled
您应该在所有子类的构造函数中使用super
关键字调用父构造函数,如下所示:
public类三角形扩展GeometricObject
{
// ...
公共三角()
{
超级(一些颜色,一些填充);
}
// ...
}
//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());
}
}