用Java设计和实现球体

时间:2015-02-02 22:16:44

标签: java geometry

我正试图通过编程开始一个良好的开端。班级的讲师没有提供反馈意见,所以如果我走在正确的轨道上,我会向你们寻求帮助。下面你会看到作业提示,下面你会发现我做了什么。我已成功纳入要求的代码吗?我正在使用NetBeans并且它会运行,但我无法弄清楚我是否错误地使用了修饰符或输入了错误的形式参数,或者其他任何事情。我没有反馈意见,希望得到一些帮助!

设计并实现一个名为Sphere的类,其中包含表示球体直径的实例数据。定义Sphere构造函数以接受并初始化直径,并包括直径的getter和setter方法。包括计算和返回球体的体积和表面积的方法(参见编程项目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;
    }

1 个答案:

答案 0 :(得分:0)

我看到了一些问题:

  1. getVolume和getSurfArea不需要半径参数,因为球体已经有一个getRadius()方法。

  2. 您不需要setRadius,因为您可以根据直径计算半径。

  3. 无需存储音量,surfArea& radius作为类的成员,因为所有这些都可以根据diameter属性计算。

  4. toStrings()应为toString(),您应该更好地格式化输出(例如,添加空格或其他分隔符)。