7.6.2 引用语义
2025年09月26日
7.6.2 引用语义
引用语义和值语义在大部分场景下表现出来的行为是不同的,值类型的实例赋值给变量或者传递给函数都是一份拷贝,而引用类型在相同的情况下,给的却是一个实例的引用。而这种差异使得引用类型和值类型在代码的执行效果上大不一样。示例代码如下:
动手写7.6.2 ReferenceClass
控制台输出如下:
本例中,声明了一个变量airPlane1,使用AirPlane类进行初始化,name属性赋值“airPlane1”,然后将airPlane1赋值给变量airPlane2,接着修改airPlane2的name,最后打印两者的name,结果都是“airPlane2”。读者一定会好奇,代码中只改变了airPlane2的name,为什么airPlane1的name也随之一起改变呢?原因是这里的变量都是对实例的引用,airPlane1先引用了刚刚创建的AirPlane实例,紧接着airPlane2也引用了这个实例,两者指向了同一个实例的引用,之后的情况便像读者看到的输出一样。指向同一个实例的引用,其中任意一个发生改变,另一个也会受到影响,这是引用类型和值类型最大的区别。