Java 变量始终存储0值。为什么?
这是完整的代码。 这是我的主要方法Java 变量始终存储0值。为什么?,java,Java,这是完整的代码。 这是我的主要方法 public static void main(String[] args) { float radius; Scanner in = new Scanner(System.in); Circle c = new Circle(); // Circle Class object System.out.print("\nEnter Circle Radius : "); radius = in.nextFloa
public static void main(String[] args)
{
float radius;
Scanner in = new Scanner(System.in);
Circle c = new Circle(); // Circle Class object
System.out.print("\nEnter Circle Radius : ");
radius = in.nextFloat();
c.SetRadius(radius); // Passing radius value..
c.display();
}
这是完整的类代码
Class Circle
{
private float radius;
float area , circumference;
float pi = 3.14f;
public void SetRadius(float r)
{
radius = r;
}
float getRadius()
{
return radius;
}
void area()
{
area = pi * ( radius * radius );
}
void Circumference()
{
circumference = 2 * pi * radius;
}
void display()
{
System.out.println("The Area of Circle is : "+area);
System.out.println("The Circumference of Circle is : "+circumference);
}
每件事似乎都是正确的,但我不知道为什么区域变量总是存储0.0值。它只存储0。将代码放入Main
类中,我得到了以下结果(与预期完全一致):
您是否在
区域
之前调用了SetRadius
?从何处获取该区域?显示完整代码在调用area()之前是否设置了半径?Java中的基本类型在默认情况下始终具有值您从未调用过area()
或Percentral()
,这是更新area
和Percentral
字段的唯一方法。所以他们保持0
。
public static void main(String[] args) {
Main m = new Main();
System.out.println(m.area); //0 by default (printed as 0.0)
m.area();
System.out.println(m.area); //0 by default again (since radius is not yet set)
m.SetRadius(10);
m.area();
System.out.println(m.area); //314.0
}