所以我创建了一个设置半径的圆类,并且应该输出半径,圆周和面积,但是,如果我输入半径,半径,圆周,面积不会输出回来,它只显示为0.0 继承我的Circle.java

public class Circle
{
    private double radius;
    private double PI = 3.14159;

    public void setRadius(double rad)
    {
            radius = rad;
    }

    public double getRadius()
    {
            return radius;
    }

    public double getArea()
    {
            return PI * radius * radius;
    }

    public double getDiameter()
    {
            return 2 * radius;
    }

    public double getCircumference()
    {
            return 2 * PI * radius;
    }

}

和heres circledemo.java http://pastie.org/466414 格式化并没有在这里出现

首先我输入半径,但是当我调用getRadius,周长,面积时,它只输出0.0

有帮助吗?

解决方案

让我们一步一步地完成程序执行。首先,初始化一些变量,然后创建一个Scanner对象。接下来,在循环时输入。在while循环中,显示主菜单,从键盘读取输入,创建新的Circle对象,然后处理您收到的输入。并且你一直这样做,直到 flag 设置为 false ,在这种情况下程序退出。

注意到这里有什么奇怪的事吗?

变量仅存在于声明的范围内,并且您的Circle对象在内部中声明为while循环。请记住,while循环的主体表示while循环的 一次迭代 。因此,基本上,您的Circle对象会反复重新创建,这就是 setRadius()无效的原因。

其他提示

创建Circle对象实例(即代码Circle one = new Circle())while循环的OUTSIDE。循环的每次迭代都会导致使用新状态(即新半径)重新创建对象。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top