首页 > 其他 > 详细

3.操作符(对象赋值)

时间:2021-03-04 10:13:54      阅读:32      评论:0      收藏:0      [点我收藏+]

对一个对象进行操作时,我们真正操作的是对对象的引用,所以倘若“将一个对象赋值给另一个对象”,实际是将“引用”从一个地方复制到另一个地方,如果c=d,那么c和d都指向原本只有d指向的那个对象,实例如下

public class Assignment {
    public static void main(String[] args){
        Tank t1 = new Tank();
        Tank t2 = new Tank();
        t1.level = 9;
        t2.level = 47;
        System.out.println("t1.level = " + t1.level + "; t2.level = " + t2.level);
        t1 = t2;
        System.out.println("t1.level = " + t1.level + "; t2.level = " + t2.level);
        t1.level = 27;
        System.out.println("t1.level = " + t1.level + "; t2.level = " + t2.level);
    }
}
class Tank{
    int level;
}
输出结果:
t1.level = 9; t2.level = 47
t1.level = 47; t2.level = 47
t1.level = 27; t2.level = 27

Tank类非常简单,他的两个实例是在main里创建的,对每个Tank类的对象的level都赋予了一个不同的值,然后将t2赋值给t1,接着又修改了t1,但是由于赋值操作的是一个对象的引用,所以修改t1的同时,也改变了t2,这是由于t1和t2包含的是相同的引用,他们指向相同的对象,为了避免这种问题,我们在赋值的时候可以这样写:t1.level = t2.level,这样便可以保持两个对象相互独立

3.操作符(对象赋值)

原文:https://www.cnblogs.com/kavins/p/14477289.html

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