什么是OOP中的"Mutable类"?

TIM*_*MEX 4 oop

标准类......它是否可变?

Mer*_*ham 12

这在很大程度上取决于语言.其中一些甚至不允许可变对象.

许多主流语言默认是高度可变的,具体取决于您在类的公共接口上公开的成员.至少在几种主流语言(特别是动态语言)中,制作不可变对象非常困难.

有关更多信息,请参阅(im)mutable的定义:

在面向对象和函数式编程中,不可变对象是一个对象,其状态在创建后无法修改.这是相对于可变对象,它可以在创建后修改.


Boz*_*zho 6

可变类是可以在创建后更改其内部状态的类.

一般来说,除非特别努力使其不可变,否则一个类是可变的.


Ami*_*hum 3

可变类是具有可变状态的类。例如,如果你有一个代表数字的类,Number那么如果你可以执行类似的操作,那么它是可变的

Number num(4);
num.set(5);
Run Code Online (Sandbox Code Playgroud)

即改变内部状态。

来自维基百科

在面向对象和函数式编程中,不可变对象是指其状态在创建后无法修改的对象。这与可变对象形成对比,可变对象在创建后可以修改。对象可以是完全不可变的,也可以将对象中的某些属性声明为不可变的;例如,在C++编程语言中使用const成员数据属性。