1

所以我做了一个圆形类来设置半径,并且应该输出半径,周长和面积但是,如果我输入半径,半径,周长,面积不会输出回来,它只显示为 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 -formatting 在这里不好

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

4

2 回答 2

5

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

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

变量只存在于声明它的范围内,而您的 Circle 对象是在 while 循环内声明的。请记住,while 循环的主体代表 while 循环一次迭代。因此,本质上,您的 Circle 对象正在一遍又一遍地重新创建,这就是为什么没有效果。setRadius()

于 2009-05-03T04:42:49.120 回答
1

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

于 2009-05-03T04:52:59.017 回答