類與封裝的概念(上)
類的組合
電腦一般而言是由cpu、記憶體、主機板、鍵盤和硬碟等部件組合而成。
類通常分為以下兩個部分
—類的實現細節
—類的使用方式
當使用類時,不需要關心其實現細節
當建立類時,才需要考慮其內部實現細節
例:. 普通使用者使用手機
只需要學習如何發簡訊,打**,拍照等等
. 手機開發工程師
需要考慮手機內部的實現細節
封裝的基本概念
封裝:字面意思就是將不想被人知道的東西隱藏起來,不對外公開。
—根據經驗:並不是類的每個屬性都是對外公開的
如:女孩子不希望外人知道自己的體重和年齡
如:男孩子不希望別人知道自己的身高和收入
—而一些類的屬性是對外公開的
如:人的姓名,學歷,國籍等
—必須在類的表示法中定義屬性和行為的公開級別
類似於檔案系統中檔案的許可權
c++中類的封裝
—成員變數:c++中用於表示類屬性的變數
—成員函式:c++中用於表示類行為的函式
—c++中可以給成員變數和成員函式定義訪問級別
在程式中如何表示封裝這個概念呢?
用private和public來表示
.public
成員變數和成員函式可以在類的內部和外界訪問和呼叫
.private
成員變數和成員函式只能在類的內部被訪問和呼叫
類與封裝的概念(中)
程式設計實驗:
1 #include 2view code3 #include 4
5struct
biology 6;
910struct
animal : biology
1117
};18
19struct
plant : biology 20;
2324
struct
beast : animal
2529
};30
31struct
human : animal
3237
38void
work()
3942
};43
44struct
girl : human
4558
};59
60struct
boy : human
61
77};
7879
intmain()
80
從上面的程式可以看出:
女生的私有變數為age和weight,這兩個變數只能在類的內部使用,如果在類的外部使用,就會出錯。為什麼,因為這是我的隱私,不想讓外界來看到我以及使用我。
男生的私有變數為height和salary,這兩個變數只能在類的內部使用,如果在類的外部使用,就會出錯。為什麼,因為這是我的隱私,不想讓外界來看到我以及使用我。在這裡如果類的外部訪問age和weight,是完全ok的,因為它是public的。
這就是封裝的體現,這就是訪問級別的體現。
類與封裝的概念(下)
類成員作用域
類成員的作用域都只在類的內部,外部無法直接訪問
成員函式可以直接訪問成員變數和呼叫成員函式
類的外部可以通過類變數訪問public成員
類成員的作用域與訪問級別沒有關係
注意:類的作用域僅僅是說明在定義的類裡面是可以訪問的,不管有沒有訪問級別它都是這樣的,訪問級別
僅僅是去防止外面的函式訪問內部的成員變數。
c++中用struct定義的類中所有成員預設為public
1 #include 2view code3int i = 1;4
5struct
test619
};20
21int
main()
22
:: 表是要訪問預設命名空間中變數i的值,預設的命名空間是什麼?其實就是全域性作用域,因此::i = 1。
這個程式告訴我們,對於類而言,它是有作用域的,類的作用域僅僅指的是類的成員變數以及成員函式的作用域。
如果要訪問乙個類的成員變數或成員函式,必須要通過乙個類物件,有了類物件就可以去訪問了,但是訪問是否成功還需要看
成員變數和成員函式的訪問級別了。
小結:類通常可以分為使用方式和內部細節兩部分
類的封裝機制使得使用方式和內部細節相分離
c++中通過定義類成員的訪問級別
實現封裝機制
public成員可以在類的內部和外界訪問和呼叫
private成員只能在類的內部被訪問和呼叫
15 類與封裝的概念
類通常分為兩個部分 當使用類時,不需要關心其實現細節 當建立類時,才需要考慮其內部實現細節。封裝的基本概念 c 中類的封裝 public 成員變數和成員函式可以在類的內部和外界訪問和呼叫 private 成員變數和成員函式只能在類的內部被訪問和呼叫 範例 類成員的訪問屬性 include inclu...
第五十八課 類模板的概念和意義 狄泰軟體學院
一 在c 中是否能夠將泛型程式設計應用於類?類模板一些類主要用於儲存和組織資料元素 類中資料組織的方式和資料元素的具體型別無關 如 陣列類,鍊錶類,stack類,queue類 c 中的類模板 以相同的方式處理不同的型別 在類宣告前使用template進行標識 用於說明類中使用的泛指型別t templ...
C 15 類於封裝的概念
電腦一般而言是由 cpu,記憶體,主機板,鍵盤和硬碟等部件組合而成。思考 學習電腦組裝需要多少時間?學習電腦組裝是否需要學習顯示器,鍵盤,滑鼠,主機板,記憶體等部件的設計與製造?例 手機開發工程師 而一些類的屬性是對外開放的 必須在類的表示法中定義屬性和行為的公開級別 include struct ...