本帖最后由 黄金龙 于 2013-1-20 01:22 编辑
- class Student {
- int number = 20;
- public int change(Student student) {
- student = new Student();//student的引用地址已经改变了,指向一个新的对象
- return student.number = 30;//这里修改了一下代码方便看结果..
- }
- public static void main(String[] args) {
- Student student = new Student();
- int number = student.number;
- System.out.println(number);//数值毫无疑问就是20.调用的就是一开始那个
- //这里加了一个打印,很清楚的可以知道现在调用的是什么..
- System.out.println(student.change(student));
-
- //这里也是只调用了原来那个不是赋值的所以是20
- int number1 = student.number;//这里number的值应该为30吧,为什么还打印的是20?----
- System.out.println(number1);
- }
- }
复制代码 帮你修改了一下代码..方便你观看..
你的本身那2个打印都是没用到30的
因为直接找自己的变量而不去找你那个方法里面的变量...我也修改那代码..你研究下吧 |