2015-02-02 2 views
-1

Я пытаюсь хорошо начать с программирования. Инструктор класса не дает обратной связи, поэтому я обращаюсь к вам, ребята, в каком-то направлении и помогаю, если я нахожусь на правильном пути. Ниже вы найдете подсказку о назначении и ниже, чтобы найти то, что я сделал. Имеет ли код, который я успешно использовал, требования? Я использую NetBeans, и он запустится, но я не могу понять, не могу ли я модифицировать модификаторы или вводить плохие формальные параметры или что-то в этом роде. У меня есть обратная связь с нуля, было бы полезно помочь!Проектирование и реализация сферы в Java

Создайте и реализуйте класс Sphere, содержащий данные экземпляра, которые представляют диаметр сферы. Определите конструктор Sphere для приема и инициализации диаметра и включите методы получения и настройки для диаметра. Включите методы, которые вычисляют и возвращают объем и площадь поверхности сферы (см. Проект программирования 3.5 для формул). Включите метод toString, который возвращает однострочное описание сферы. Создайте класс драйвера под названием MultiSphere, основной метод которого создает и обновляет несколько объектов Sphere.

package sphere; 

public class Sphere { 

private int diameter, radius; 
private double volume, surfArea; 


    public Sphere(int diam){ 
     diam = diameter; 
    } 

    //Diameter mutator. 
    public void setDiameter(int value){ 
     if (value > 0) 
      diameter = value; 
    } 

    //Diameter accessor. 
    public int getDiameter(){ 
     return diameter; 
    } 

    //Radius mutator. 
    public void setRadius(int value){ 
     radius = (int)diameter/2; 
    } 

    //Radius accessor. 
    public int getRadius(){ 
     return radius; 
    } 

    //Calculate volume. 
    public double getVolume(int radius){ 
     volume = (double)(Math.pow(radius,3)* Math.PI *(4.0/3.0)); 
     return volume; 
    } 

    //Calculate surface area. 
    public double getSurfArea(int radius){ 
     surfArea = (double)(Math.pow(radius,2)*Math.PI * 4.0); 
     return surfArea; 
    } 

    //Results in string 
    public String toStrings(){ 
     String result1 = Integer.toString(diameter); 
     String result2 = Double.toString(volume); 
     String result3 = Double.toString(surfArea); 
     return result1 + result2 + result3; 
    } 
+0

'' Имеет ли код, который я успешно применяю, требования? "' - что происходит, когда вы запускаете и проверяете свой код? –

+0

Требования кажутся ясными - встречается ли это с ними? –

+0

Когда код запущен, он заявляет, что мне не хватает основного метода. На данный момент я использую основной метод со сканером? Если это так, я сначала импортирую сканер, затем создаю сканер, а затем сканирую следующую строку()? Если да, то каким образом я могу использовать это значение nextInt для генерации всех моих результатов, другими словами, как бы выглядеть так, чтобы скомпилировать все эти методы с входным значением? –

ответ

0

Я вижу некоторые проблемы:

  1. getVolume и getSurfArea не требуют радиуса аргумент, так как сфера уже имеет метод getRadius().

  2. Вам не нужен setRadius, так как вы можете рассчитать радиус от диаметра.

  3. Нет необходимости хранить объем, surfArea & радиус как член класса, так как все они могут быть рассчитаны на основе свойства диаметра.

  4. toStrings() должно быть toString(), и вы должны лучше форматировать вывод (например, добавить пробелы или другие разделители).

+0

Спасибо за помощь Эран. Я думаю, что хотя методы, которые у меня есть, являются избыточными (например, радиус и на самом деле не нужны), они были хорошей практикой. Я считаю, что в задании упоминаются способы создания surfArea и Volume, поэтому я пошел по этому пути. Должен ли я сделать это по-другому, все еще удовлетворяя подход «метода»? –

Смежные вопросы