面向對象的意義在於: -將日常生活中習慣的思維方式引入程式設計中 -將需求中的慨念直觀的映射到解決方案中 -以模塊為中心構建可復用的軟體系統 -提高軟體產品的可維護性和可擴展性 其中類和對象是面向對象中的兩個基本概念 -類:指的一類事物,裡面包括不同對象實體,是一個抽象的概念,比如:程式語言 -對象 ...
面向對象的意義在於:
- -將日常生活中習慣的思維方式引入程式設計中
- -將需求中的慨念直觀的映射到解決方案中
- -以模塊為中心構建可復用的軟體系統
- -提高軟體產品的可維護性和可擴展性
其中類和對象是面向對象中的兩個基本概念
-類:指的一類事物,裡面包括不同對象實體,是一個抽象的概念,比如:程式語言
-對象:指的是類里的具體實體,比如:程式語言(類)->java(對象)、C#(對象)等
類
-類用於抽象的描述一類事物所共有的屬性和行為
比如:
電腦,都擁有CPU/主板/記憶體/硬碟(共有屬性),並且可以運行程式(共有行為)
對象
-對象指類里的具體事物,並且擁有描述類中的一切共有屬性和行為
比如:
神舟電腦G50-F5型號,CPU是酷睿i5,記憶體8G,硬碟1TB等
神舟電腦G60-F7型號,CPU是酷睿i7,記憶體16G,硬碟1TB+128GB(固態硬碟)等
總結:
- 類下麵不一定存在實際對象,比如:恐龍(類),對象已經滅絕,沒有一個對象
- 類的對象數目不確定,比如:電腦(類),該對象數目不確定,美國總統(類),該對象當今只有一個
- 類不一定都來源於現實生活.
- 類不是獨立的,類與類之間也存在關係,比如:電腦(類)包括了CPU(類),主板(類)等,
- 對象不一定只屬於一個類,比如:二哈(對象),既屬於哺乳動物(類),又屬於犬科(類)
類與類之間的關係
繼承
-父類和子類之間具有繼承關係,比如:車(父類)包括了汽車(子類)
可以這麼理解,汽車一定是車,但是車不一定是汽車
-繼承的子類擁有父類的所有屬性和行為
組合
-一些類的存在必須依賴於其它的類,這種關係叫組合,比如:電腦(類)包括了CPU(類)等
-組合的類在某個局部上由其它的類組成
繼承實例
以現實生活中的生物類為例:
如上圖,在C++中,又如何通過程式來表達出來呢?
在C++中,通過struct表達類,通過:表達繼承,所以可以將上圖改進為:
又通過變數表達屬性,通過函數表達行為.
最終將生活中的例子體現在C++代碼中:
#include <stdio.h> struct Biology { //生物類 bool living; }; struct Animal : Biology { //動物類繼承於: 生物類 bool movable; void findFood() { } }; struct Plant : Biology { //植物類繼承於: 生物類 bool growable; }; struct Beast : Animal { //禽獸繼承於: 動物類 void sleep() { } }; struct Human : Animal { //人類繼承於: 動物類 void sleep() { } void work() { } };
int main() { return 0; }
未完待續,下章學習類與封裝