晕乎乎的过了几天 都没怎么看书, 甚至还在怀疑自己要不要走专业 so funny.
case1: 有没有this 的区别
<span style="font-size:14px;">public class B {
int x=100,y=200;
public void setX(int x){
<u>x=x;</u>
}
public void setY(int y){
<u>this.y=y;</u>
}
public int getSum(){
int sum=x+y;
return sum;
}
}</span>
<span style="font-size:14px;">public class A {
public static void main(String args[]) {
B b=new B();
b.setX(-100);
b.setY(-200);
System.out.println(b.getSum());
}
}</span>
结果是-100 。 我以为是100呢 - - 有this 就代表他指定setY(int y)这里面的值 而不是成员变量里面y的值、case2: 有无static 的区别
<span style="font-size:14px;">public class B {
int n;
<u>static</u> int sum = 0;
void setN(int n) {
this.n = n;
}
int getSum() {
for (int i = 1; i <= n; i++) {
sum = sum + i;
<u> System.out.print(" " + sum);</u>
}
return sum;
}
}</span>
<span style="font-size:14px;">public class A {
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 + s2);
}
}</span>
在没有运行之前 我觉得结果是21 ,运行之后是27 完全想不到怎么来的 调试之后还是不知道 最后在sum=sum+i;那加了个输出以便观察结果。 发现第二次调用getSum的时候 ,sum的值并没有重置为0,而是接着b1里面sum的值6 。 所以结果就是6+21 =27. 测试了去掉static 结果和我最开始想的一样 21、