[英]Circle functions not behaving as expected in Java Class
所以我做了一个设置半径的圆类,应该输出半径,周长和面积。但是,如果我输入半径,半径,周长,面积就不会输出回来,它只是显示为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
循环。 在while循环内,您将显示主菜单,从键盘读取输入, 创建一个新的Circle对象 ,然后处理收到的输入。 然后您继续执行操作,直到将flag
设置为false
为止,在这种情况下,程序将退出。
注意到这里有什么奇怪的地方吗?
变量仅存在于声明范围内,而Circle对象声明于 while循环内。 请记住,while循环的身体,展示着while循环的 一个迭代 。 因此,从本质setRadius()
,一遍又一遍地重新创建了Circle对象,这就是setRadius()
无效的原因。
在while循环之外创建Circle对象实例(即代码Circle one = new Circle())。 循环的每次迭代都会导致以新状态(即新半径)重新创建对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.