软件构造课程思考7

发布时间 2023-05-25 10:04:39作者: Zzzzzzxz

4.3易变性和不变性
改变一个变量:将变量指向另一个存储空间

改变一个变量的值:将该变量当前指向的存储空间写入一个新值

4.3.1不变性(重要设计原则)
数据类型一旦被创建,其值不能改变;引用类型一旦确定其指向的对象,不能再给变其指向其他对象

Java中使用关键字“final”来标记:

final类无法派生自己的子类
final变量无法改变值/引用
final方法无法被子类重写
编译器进行静态类型检查时,如判断final变量首次赋值后发生了改变,会提示错误。

尽量使用final变量作为方法的输入参数,作为局部变量

4.3.2 可变性
不变对象:一旦被创建,始终指向同一个值/引用
可变对象:拥有方法可以修改自己的值/引用

eg: String是不可变类型,StringBuilder是可变数据类型