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
}