Circle函数在Java类中的行为不符合预期

Rap*_*rex 1 java methods class public

所以我做了一个设置半径的圆类,并且应该输出半径,圆周和面积,但是,如果我输入半径,半径,圆周,面积不会输出回来,它只显示为0.0 heres我的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;
    }

}
Run Code Online (Sandbox Code Playgroud)

和继承人circledemo.java http://pastie.org/466414 -formatting 在这里没有出来

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

hbw*_*hbw 5

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

注意这里有什么奇怪的

变量仅存在于声明的范围内,并且您的Circle对象在while循环声明.请记住,while循环体代表一个迭代 while循环.所以,基本上,你的Circle对象会一遍又一遍地重新创建,这就是为什么setRadius()没有效果.

  • 一个好的经验法则是,每当你看到一个{,你进入一个新的范围,每次你看到一个}时,你就会离开它.这意味着当你到达}时,在一对{}中声明的任何内容都会超出范围.我可能会过分简化一点,但这给了我一个正确的想法.此外,最好每隔{增加一次缩进,然后逐渐减少}. (2认同)