首页 > 其他 > 详细

引用传递

时间:2014-03-07 11:28:33      阅读:392      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
class Tank {
      int level;
      public Tank(int level){
          this.level = level;
      }
}    

public class Assignment {
          public static void main(String[] args) {
                Tank t1 = new Tank(9);
                Tank t2 = new Tank(47);
                System.out.println("t1.level: " + t1.level +
                                              ", t2.level: " + t2.level);
                //t1现在指向t2对象
                t1 = t2;
                System.out.println("t1.level: " + t1.level +
                                            ", t2.level: " + t2.level);
                
                //修改t1的同时也修改了t2
                t1.level = 36;
                System.out.println("t1.level: " + t1.level +
                                            ", t2.level: " + t2.level);
                
                 //传递给f()函数的是t1的引用,而不是t1的副本                
                f(t1);
                System.out.println("t1.level:"+t1.level +
                                            ", t2.level: " + t2.level);
          }

         public static void f(Tank tank) {
             tank.level = 5;
          }
}
//如果只想改变t1的level值而不影响t2的值,可以这样调用 
// t1.level = t2.level
//但直接操作对象的属性违背面向对象程序设计的原则
    
bubuko.com,布布扣

引用传递,布布扣,bubuko.com

引用传递

原文:http://www.cnblogs.com/yuyutianxia/p/3585511.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!