当前位置: 代码迷 >> J2SE >> 一路笔试题目
  详细解决方案

一路笔试题目

热度:75   发布时间:2016-04-23 20:34:00.0
一道笔试题目
package hello;

public class test2 {
protected int num = 0;
public static void main(String[] args){
test2 t = new test2();
t.change(t.num);
System.out.println(t.num); //0,这个没什么疑问,必须是0啊
t.change(t);
System.out.println(t.num); //9,这个在方法内将内存地址赋给了t,所以我写的是9,但是结果是0,不明白为什么
t.add(t.num);
System.out.println(t.num); //9,这个写的是19,一错再错,其实答案还是0,也是不明白为什么
t.add(t);
System.out.println(t.num); //这个没什么好说的,就中间两个不明白为什么,,,求大神解释


}
public void add(int i) {
i +=10;
}
public void add(test2 t) {
t.num+=20;
}
public void change(test2 t) {
test2 tmp = new test2();
tmp.num = 9;
t = tmp;
}
public void change(int i) {
i = 5;
}
}

------解决方案--------------------
http://www.cnblogs.com/laipDIDI/articles/2524309.html
看看这篇文章我相信你就会明白了
  相关解决方案