Я действительно новичок в Java, и у меня есть идея, что мне нужно сделать для этих методов, я просто пытаюсь перевести это в код haha Я думаю, что я просто запутался, какой объект вызывает методы и т. д. и т. д.Написание метода для определения максимальной площади поверхности в массиве форм
Итак, я пытаюсь написать метод maxSurfaceArea, который принимает массив фигур, которым заданы конкретные размеры, и находит форму, которая имеет максимальную площадь поверхности. Итак, что я пытался сделать, это присвоить первый индекс, который содержит форму currentSurfaceArea и maxSurfaceeArea. Затем метод должен перейти к следующему индексу массива, проверить площадь поверхности, если он больше, чем предыдущий maxSurfaceArea, затем назначить эту новую форму maxSurfaceArea и повторить все до конца массива. В этой программе я вызываю этот метод в основном классе методов, но вне этого у меня есть класс под названием Shape, который в нем ничего не имеет. Также классы Circle, Triangle, Rectangle (каждый отдельный класс), которые все простираются от Shape. Также класс Sphere (продолжается от Circle), класс Cylinder (продолжается от круга), класс Prism (простирается от Rectangle), класс Tetrahedron (продолжается от треугольника).
Каждый из классов имеет свои собственные методы .computeArea и выводится методом toString, который вызывается основным классом.
Одна из вещей, которую я смущаю, я знаю, если я делаю maxSurfaceArea логическим, что он не может быть преобразован в «Shape», потому что это тип массива, который он принимает. Я просто не знаю. Любая помощь приветствуется.
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()'? «Форма»? Область?Возвращаемый тип 'void' на самом деле не имеет смысла. – nhahtdh