JAVA学习笔记--赋值(“=”)

参考来源:《java编程思想(第四版)》 见第三章3.4节

基本数据类型存储了实际的数值,并非指向一个对象的引用,故其赋值,就是直接将一个地方的内容复制到了另一个地方。例如,对基本数据类型使用a=b,那么b的内容就复制给a,而b根本不会受这种修改的影响。但是作为对象“赋值”的时候,真正操作的是对“对象”的引用。所以倘若“将一个对象赋值给另外一个对象”,实际是将“引用”从一个地方复制到另一个地方。这意味着假若对对象使用c=d,那么c和d都指向原本只有d指向的那个对象。

class Tank {
    int level;
}

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("1: t1.level: " + t1.level + ", t2.level: " t2.level);

        t1 = t2;
        System.out.println("2: t1.level: " + t1.level + ", t2.level: " t2.level);

        t1.level = 27;
        System.out.println("3: t1.level: " + t1.level + ", t2.level: " t2.level);

    }
    /* 输出:
     * 1:t1.level:9, t2.level:47
     * 2:t1.level:47, t2.level:47
     * 3:t1.level:27, t2.level:27
     */
}

posted @ 2017-11-13 10:21  v海神与小周  阅读(239)  评论(0编辑  收藏  举报