Dee*_*ngh 3 java variables instance-variables
我有一个下面的代码.可变c和d是类变量,最初它们指向值0,但是当我没有 c=a* a;和d =b* b*b他们印刷值25和64,其是正确的.所以我现在想的是,c和d现在指向价值25和64,他们是类变量,所以如果我不j=c+d;应该给我89 j值,但它给我0 ...为什么?我知道如果我使用static与c和d可变它会给我89值...但是我为什么要使用static的c和d是全局变量和有值现在更新为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)
您正在使用班级的三个单独实例.这意味着squ,cub和su每个人都有自己版本的类.相反,使用相同的一个实例,以便所有更改都发生在同一个实例中.
public static void main(String[] args) {
BaiscSum sum= new BaiscSum();
sum.square();
sum.cube();
sum.sum();
}
Run Code Online (Sandbox Code Playgroud)