public class B {
int n;
static int sum=0;
void setN(int n){
this.n=n;
}
int getSum(){
for(int i=1;i<=n;i++)
sum=sum+i;
return sum;
}
}public class C {
public static void main(String[] args) {
B b1=new B();
B b2=new B();
b1.setN(3);
b2.setN(5);
int s1=b1.getSum();
int s2=b2.getSum();
System.out.println(s1);
System.out.println(s2);
}
}结果是:6 21我为什么想不i明白S2会得21呢?为什么不是15??
1 回答
已采纳
产品经理不是经理
TA贡献481条经验 获得超143个赞
因为b1.getSum();执行完成后,静态成员变量sum的值已经变成了6而不是0;当你执行b2.getSum()的时候, 累加的和自然是21了。
添加回答
举报
0/150
提交
取消