我对OOP还是很陌生,因此可以提供任何帮助。我有一个类文件,它接受一些输入并像这样计算三角形的面积:
public class Triangle
{
private int base;
private int height;
private double area;
private String name;
private double totalArea = 0;
public void writeOutput()
{
System.out.println("Triangle name: " + name);
System.out.println("Triangle base: " + base);
System.out.println("Triangle height: " + height);
System.out.println("Triangle area: " + setArea());
System.out.println("Total Area: " + totalArea);
}
private double setArea()
{
area = (base * height) * 0.5;
return area;
}
private double setTotalArea()
{
totalArea += area;
return totalArea;
}
}
我的问题是在
setTotalArea()
方法中。基本上,应该将所有计算出的面积累加起来,但是,它所做的只是回显该面积,我不知道为什么。任何建议表示赞赏! 最佳答案
您正在混合设置器和获取器。例如,您的setArea()
方法不是真正的“ setter”方法,因为它是私有的,不接受任何参数,不设置任何内容,并尝试返回值-与setter应该执行的大多数操作完全相反,并且相同适用于您的setTotalArea。
无论如何,不好意思说,但是这段代码很枯燥,我建议您简单地摆脱它,然后重新开始(这还不算什么大类,所以没什么大不了的),而是从您的领域开始(高度,基和名称),构造函数,可能是设置类属性的构造函数,并且具有真正的公共设置方法,这些方法实际上接受参数并使用这些参数来设置类字段。然后,创建返回类字段值的getter方法。您的类甚至不应该具有setArea方法或area字段,因为area是一个计算值,而不是设置值,它可能应该在getArea()方法中当场计算并返回。
编辑,您声明:
我的问题是在setTotalArea()方法中。基本上,应该将所有计算出的面积累加起来,但是,它所做的只是回显该面积,我不知道为什么。任何建议表示赞赏!
抱歉,我不明白。总共什么区域?该课程仅描述一个三角形,因此这里没有累积面积的概念。现在,如果您拥有另一个包含Triangle对象的数组或集合的类,那么* get * TotalArea(未设置总面积)方法将很有意义,因为它将添加集合中所有三角形的面积,但是您没有在这里有这个。