良好的程式設計應該盡可能減小類與類之間耦合,所遵循的經驗法則是:盡量限制成員函式的可見性。如果成員函式沒必要公有 (public),就定義為保護
(protected)
;沒必要保護
(protected)
,就定義為私有
(private)。
可見性
說明
正確用法
public
公有成員函式可被任何其它物件和類的成員函式呼叫。
當該成員函式必須被該函式所在的層次結構之外的其他物件和類所訪問時。
protected
被保護的成員函式可被它所在的類或該類的子類的任何成員函式呼叫。
當該成員函式提供的行為被它所在類的層次結構內部而非外部需要時。
private
私有成員函式只可以被該類所在的其它成員函式呼叫,該類的子類不可以呼叫。
當該成員函式所提供的行為明確針對定義它的類時。私有成員函式常常是重新分配要素的結果。重新分配要素又叫「重組」
,指類內其它成員函式封裝某乙個特定行為的做法。
當字段被宣告為
protected
型別時,子類中的成員函式可能會直接訪問它,有效地提高了類內層次結構的耦合性。這使類更難維護和加強,所以應該盡量避免。欄位不應被直接訪問,而應採用訪問成員函式(參見下文)訪問。
可見性
說明
正確用法
public
乙個公共欄位可被任何其他物件或者類中的成員函式訪問。
不要讓字段公有。
protected
被保護的字段可被它宣告時所在的類及該類的子類的所有成員函式訪問。
不要讓字段被保護。
private
私有欄位只可以被它宣告時所在的類的其它成員函式呼叫,該類子類中的函式不可以呼叫。
所有的字段都應置為私有,由獲取和設定成員函式(訪問函式)訪問。
對於那些非長期性的字段(它們不被永久保留),應將它們標註為
static
或transient
。使它們與 bdk 的約定一致。
類成員的可見性
private 具有private屬性的成員稱為私有成員,只有本單元檔案中的程式可以訪問私有成員,而其他單元或者主程式均不能訪問這些成員。如果在乙個單元檔案中定義了2個類,則乙個類可以訪問另乙個類的私有成員。被定義的類成員僅在該類的方法中可被訪問,它的子類和例項都無法訪問。public 具有publ...
類 成員可見性 繼承
類名定義 tips 現實世界事務的特徵和行為,抽象到類就是資料成員和方法。例項化物件時,會自動呼叫 init 函式。self 當前呼叫該方法的物件。python 在 init 函式內定義例項變數。嘗試訪問乙個例項變數時,python首先會在物件的例項變數列表查詢,如果找不到,則到類變數列表尋找,如果...
c 類繼承的成員可見性
1 c 繼承機制的相關知識點 繼承機制,就是利用已有的資料型別來定義新的資料型別,新資料型別將擁有基類的成員。派生類可以從乙個基類派生,也可以從多個基類派生。從乙個基類派生的繼承稱為單繼承 從多個基類派生的繼承稱為多繼承。單繼承語法 class 派生類名稱 繼承方式 基類名 多繼承語法 class ...