本帖最后由 朱宏青 于 2012-11-6 13:37 编辑
让我测试下 请稍等
测试完毕(中途突然肚子疼去了下厕所= =)
结果明显是:6。
这里重点是关于change(int m)这个方法。
把x当做参数m传入到change这个方法里去后,这个m只是引用了x而已,无论如何操作,都不会改变x的值,而且对m的改变只在这个方法里有效,并且最后又没有返回回来。
而x++;这段代码的意思是x = x+1;将x加上1以后再赋给x,那这个x的值明显就发生了变化
所以最后等于6。
这里重点要说的是,假如代码改成这样:- class test4 {
- static int x = 5;
- public static void main(String[] args) {
- change(x);
- x++;
- System.out.println(x);
- }
- static void change(int m){
- x = m+2;
- }
- }
复制代码 结果又会如何呢?
因为x被static所修饰着,可以被全局调用,所以这个change方法里的x= m+2;实际也会对x的值产生改变。
所以最后的答案就变成了8。
所以不要搞错哦~ |