2010-08-24 70 views
4

標準類......它是否可變或不可變?什麼是OOP中的「可變類」?

+3

什麼是「標準班」? – 2010-08-24 07:14:13

+14

無產階級? – 2010-08-24 07:29:35

+0

無產階級。好的:-)也許標準課程是像「Vehicle」或「Animal」這樣的典型OO教學課程之一? – paxdiablo 2010-08-24 07:38:02

回答

3

可變類是一個具有可變狀態的類。 例如,如果你有一個表示編號,Number一類,那麼它是可變的,如果你能這樣做

Number num(4); 
num.set(5); 

即,改變內部狀態。

Wikipedia

在面向對象和功能編程,一個不變對象是一個對象,其狀態被創建後不能被修改。這與可變對象形成對比,該對象可在創建後進行修改。一個對象可以是完全不可變的,或者對象中的某些屬性可能被聲明爲不可變的;例如,使用C++編程語言中的const成員數據屬性。

11

它強烈地依賴於語言。其中一些甚至不允許可變對象。

許多主流語言默認爲高度可變,這取決於您在班級公開界面上公開的成員。至少在幾種主流語言(特別是動態語言)中,創建不可變對象非常困難。

見的(im)mutable定義的詳細資料:

在面向對象和功能編程,一個不可變的對象是一個對象,其狀態被創建後不能被修改。這與可變對象形成對比,其中可以在創建後進行修改。

5

可變類是可以在創建後改變其內部狀態的類。

一般來說,一個類是可變的,除非特別努力使它不可變。

0

「通常」(如在通常的語言中)它是可變的。

0

類通常是而不是可變(儘管一些語言偏離此)。另一方面,您通過類創建的對象如果包含狀態,則通常是可變的,並且您不需要特別注意防止任何人在創建對象後更改該狀態。