了解Java中变量指向值的方式

Dee*_*ngh 3 java variables instance-variables

我有一个下面的代码.可变cd是类变量,最初它们指向值0,但是当我没有 c=a* a;d =b* b*b他们印刷值25和64,其是正确的.所以我现在想的是,cd现在指向价值25和64,他们是类变量,所以如果我不j=c+d;应该给我89 j值,但它给我0 ...为什么?我知道如果我使用staticcd可变它会给我89值...但是我为什么要使用staticcd是全局变量和有值现在更新为25和64.请让我知道.谢谢.

public class BaiscSum {

    int a=5;
    int b=4;
    int c;
    int d;
    int j;

    public void square() {
        c=a*a;
        System.out.println(c);   
    }

    public void cube() {
        d=b*b*b;
        System.out.println(d);
    }

    public void sum() {
        j=c+d;
        System.out.println(j);
    }

    public static void main(String[] args) {
        BaiscSum squ= new BaiscSum();
        squ.square();

        BaiscSum cub = new BaiscSum();
        cub.cube();

        BaiscSum su = new BaiscSum();
        su.sum();    
    }
}
Run Code Online (Sandbox Code Playgroud)

Moi*_*ker 6

您正在使用班级的三个单独实例.这意味着squ,cubsu每个人都有自己版本的类.相反,使用相同的一个实例,以便所有更改都发生在同一个实例中.

public static void main(String[] args) {
    BaiscSum sum= new BaiscSum();
    sum.square();
    sum.cube();
    sum.sum();
}
Run Code Online (Sandbox Code Playgroud)