【发布时间】:2013-09-09 23:56:09
【问题描述】:
我真的是 Java 新手,我知道我需要为这些方法做什么,我只是想把它翻译成代码哈哈我想我只是对哪个对象正在调用方法感到困惑以此类推。
所以我正在尝试编写一个名为 maxSurfaceArea 的方法,该方法接收一组具有特定尺寸的形状,并找到具有最大表面积的形状。 所以我试图做的是将包含形状的第一个索引分配给 currentSurfaceArea 和 maxSurfaceeArea。然后该方法需要转到数组的下一个索引,检查表面积,如果它大于前一个 maxSurfaceArea,则将该新形状分配给 maxSurfaceArea,并重复所有操作,直到数组结束。 在这个程序中,我在主方法类中调用此方法,但在此之外,我有一个名为 Shape 的类,其中没有任何内容。还有一个 Circle、Triangle、Rectangle 类(每个都是一个单独的类),它们都从 Shape 扩展而来。还有一个球类(从圆形延伸),圆柱类(从圆形延伸),棱柱类(从矩形延伸),四面体类(从三角形延伸)。
每个类都有自己的 .computeArea 方法,它们由主类调用的 toString 方法输出。
我感到困惑的一件事是,我知道如果我将 maxSurfaceArea 设为布尔值,它就不能转换为“形状”,因为这是它所接受的数组类型。 我只是不知道。任何帮助将不胜感激。
public static Shape[] shapeList;
public static void main (String[] args)
{
shapeList = new Shape[8];
shapeList[0] = new Sphere(7.4);
shapeList[1] = new Prism(5,4.5,4);
shapeList[2] = new Tetrahedron(4,5);
shapeList[3] = new Cylinder(3.14, 4.5);
shapeList[4] = new Prism(1, 2, 3);
shapeList[5] = new Tetrahedron(2.34, 3.56);
shapeList[6] = new Sphere(2.5);
shapeList[7] = new Cylinder(6.7, 3.3);
for (int i = 0; i < shapeList.length; i++)
{
System.out.println(shapeList[i].toString());
}
}
public static void maxSurfaceArea(Shape[] shapeList)
{
boolean maxSurfaceArea, currentSurfaceArea;
for (int i = 0; i < shapeList.length; i++)
{
currentSurfaceArea = (shapeList[i]);
maxSurfaceArea = (shapeList[i])
if (shapeList[i].computeArea() > )
{
}
}
【问题讨论】:
-
你能完成你包含的代码吗?它没有完全完成。不要要求我们为您完成代码:向我们展示您的尝试,告诉我们您希望它做什么,以及您看到它做什么,然后我们可以告诉您哪里出错了。跨度>
-
你想为
maxSurfaceArea()返回什么?Shape?地区?void返回类型在这里没有意义。