Mer*_*ham 12
这在很大程度上取决于语言.其中一些甚至不允许可变对象.
许多主流语言默认是高度可变的,具体取决于您在类的公共接口上公开的成员.至少在几种主流语言(特别是动态语言)中,制作不可变对象非常困难.
有关更多信息,请参阅(im)mutable的定义:
在面向对象和函数式编程中,不可变对象是一个对象,其状态在创建后无法修改.这是相对于可变对象,它可以在创建后修改.
可变类是具有可变状态的类。例如,如果你有一个代表数字的类,Number那么如果你可以执行类似的操作,那么它是可变的
Number num(4);
num.set(5);
Run Code Online (Sandbox Code Playgroud)
即改变内部状态。
来自维基百科:
在面向对象和函数式编程中,不可变对象是指其状态在创建后无法修改的对象。这与可变对象形成对比,可变对象在创建后可以修改。对象可以是完全不可变的,也可以将对象中的某些属性声明为不可变的;例如,在C++编程语言中使用const成员数据属性。