标准类......它是否可变?
答案 0 :(得分:12)
这在很大程度上取决于语言。其中一些甚至不允许可变对象。
许多主流语言默认是高度可变的,具体取决于您在类的公共接口上公开的成员。至少在几种主流语言(特别是动态语言)中,制作不可变对象真的很难。
有关详细信息,请参阅(im)mutable的定义:
在面向对象和函数式编程中,不可变对象是一个对象,其状态在创建后无法修改。这与一个可变对象形成对比,可以在创建后进行修改。
答案 1 :(得分:6)
可变类是可以在创建后更改其内部状态的类。
一般来说,除非特别努力使其不可变,否则一个类是可变的。
答案 2 :(得分:3)
可变类是具有可更改状态的类。
例如,如果你有一个代表数字Number
的类,那么如果你可以做类似
Number num(4);
num.set(5);
即改变内部状态。
来自Wikipedia:
在面向对象和函数式编程中,不可变对象是一个对象,其状态在创建后无法修改。这与可变对象形成对比,可变对象可在创建后进行修改。对象可以是完全不可变的,也可以声明对象中的某些属性是不可变的;例如,使用C ++编程语言中的const成员数据属性。
答案 3 :(得分:0)
“通常”(与通常的语言一样)它是可变的。
答案 4 :(得分:0)
类通常不可变(尽管某些语言偏离此类)。另一方面,如果它们包含状态,那么从类创建的对象通常是可变的,并且您不需要特别注意防止任何人在创建对象后更改该状态。