Geometry 区号错误
设计一个名为Triangle的类来扩展GeometricObject(下面给出的代码)。三角形类包含: •三个名为side1、side2和side3的双数据字段,默认值为1.0,表示三角形的三条边。 •创建默认三角形的无参数构造函数。 •使用指定的边1、边2和边3创建三角形的构造函数。 •所有三个数据字段的访问器方法。 •一个名为getArea()的方法,返回此三角形的面积。 •一个名为GetPermiture()的方法,返回此三角形的周长。 •一个名为toString()的方法,返回三角形的字符串描述Geometry 区号错误,geometry,area,Geometry,Area,设计一个名为Triangle的类来扩展GeometricObject(下面给出的代码)。三角形类包含: •三个名为side1、side2和side3的双数据字段,默认值为1.0,表示三角形的三条边。 •创建默认三角形的无参数构造函数。 •使用指定的边1、边2和边3创建三角形的构造函数。 •所有三个数据字段的访问器方法。 •一个名为getArea()的方法,返回此三角形的面积。 •一个名为GetPermiture()的方法,返回此三角形的周长。 •一个名为toString()的方法,返回三角形的字
public class GeometricObject {
private String color = "white";
private boolean filled;
private java.util.Date dateCreated;
/** Construct a default geometric object */
public GeometricObject() {
dateCreated = new java.util.Date();
}
/** Construct a geometric object with the specified color
* and filled value */
public GeometricObject(String Color, boolean filled) {
dateCreated = new java.util.Date();
this.color = color;
this.filled = filled;
}
/** Return color */
public String getColor() {
return color;
}
/** Set a new color */
public void setColor(String color) {
this.color = color;
}
/** Return filled. Since filled is boolean,
its get method is named isFilled */
public boolean isFilled() {
return filled;
}
/** Set a new filled */
public void setFilled(boolean filled) {
this.filled = filled;
}
/** Get dateCreated */
public java.util.Date getDateCreated() {
return dateCreated;
}
/** Return a string representation of this object */
public String toString() {
return "created on " + dateCreated + "\ncolor: " + color +
" and filled: " + filled;
}
}
中断
中断
我运行了代码,但出于某种原因,它总是将面积返回为“0.0”,而不是三角形的实际面积。我遗漏了什么?您正在计算面积并通过两个不同的函数“获取”它。我认为您应该在getArea()方法中计算并返回面积(实际上,您的Calcrea方法什么都不做——它计算面积(我可能会加错),并且什么都不做。) 面积公式是您在calcArea()中的变量“Num”中计算的面积的平方根。不要使用单独的函数getArea()和calcrea(),只需将该代码放在getArea()中,并去掉calcrea()方法
从getArea()方法中获得0作为面积的原因是,公式以“1/2”开头,在整数除法下计算结果为0(请记住整数除法丢弃余数)。要解决这个问题,您应该将其设置为“1.0/2.0”,或者只需除以“2.0”。(当然,请记住,在getArea()中使用的公式甚至都不正确!)请添加一个标记,指定这是什么语言。
public class Triangle extends GeometricObject {
double side1 = 1.0;
double side2 = 1.0;
double side3 = 1.0;
public Triangle() {
side1=0.0;
side2=0.0;
side3=0.0;
}
public Triangle(double a, double b, double c) {
side1 = a;
side2 = b;
side3 = c;
}
public void show() {
System.out.println(side1+","+side2+","+side3+",");
}
public void calcArea(){
double s = 0.0, Num = 0.0;
s = 0.5*(side1+side2+side3);
Num = s*((s-side1)*(s-side2)*(s-side3));
}
public double getArea(){
return( 1/2*(side1*side2*side3));
}
public double getPerimeter(){
return (side1 + side2 + side3);
}
@Override
public String toString(){
return "Triangle Information:+ “\nside1 = " + side1 + "\nside2 = " + side2 +
"\nside3 = " + side3 + "\ncolor = " + getColor() + "\nfilled =" + isFilled();
}
}
public class DemoTriangle {
public static void main(String[] args) {
Triangle triangle = new Triangle(1, 1.5, 1);
System.out.println(triangle);
triangle.setColor("yellow");
triangle.setFilled(true);
System.out.println("The area is " + triangle.getArea());
System.out.println("The perimeter is " + triangle.getPerimeter());
System.out.println(triangle);
}
}