所以我创建了一个设置半径的圆类,并且应该输出半径,圆周和面积,但是,如果我输入半径,半径,圆周,面积不会输出回来,它只显示为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
答案 0 :(得分:5)
让我们一步一步地完成程序执行。首先,初始化一些变量,然后创建一个Scanner对象。接下来,输入while
循环。在while循环中,显示主菜单,从键盘读取输入,创建新的Circle对象,然后处理您收到的输入。并且你一直这样做,直到flag
设置为false
,在这种情况下程序退出。
注意到这里有什么奇怪的事吗?
变量仅存在于声明的范围内,并且您的Circle对象在内部中声明为while循环。请记住,while循环的主体表示while循环的 一次迭代 。因此,基本上,您的Circle对象会反复重新创建,这就是setRadius()
无效的原因。
答案 1 :(得分:1)
创建Circle对象实例(即代码Circle one = new Circle())while循环的OUTSIDE。循环的每次迭代都会导致使用新状态(即新半径)重新创建对象。