看看这个结果怎么出来的
package lianxi;
class Count {
public int num;
Count(int num) {
this.num = num;
}
}
public class test {
public static void main(String[] args) {
Count count1 = new Count(0);
int times = 0;
for (int i = 0; i < 50; i++)
increment(count1, times);
System.out.println(count1.num);
System.out.println(times);
}
public static void increment(Count a, int times) {
a.count++;
times++;
}
}
输出的结果分别为50,0
求教怎么出来的这两个数
[解决办法]
这就是基本数据类型和类类型的区别。
这么说吧:
基本数据类型,比如你这里这个val,就像是一个文本文件a.txt,传参的时候是把这个文本文件复制了一份a1.txt,你改的是复制的那个a1.txt,但是a.txt并没有变
而类类型,比如这个sb2,就像是一个快捷方式b.lnk,它链接的是a.txt,传值的时候是把这个快捷方式b.lnk复制了一份b1.lnk,但是它还是指向a.txt。所以你修改的还是a.txt。所以它的内容变了。
这个比喻不太好,但是好理解。