C 2 0學習3 物件導向基本概念

2021-04-08 13:51:33 字數 2134 閱讀 2157

c#

物件導向概念 一、

物件導向的概念:

以接近現實的處理手法來處理專案中的設計。乙個例子:

請描述一下森林中乙隻獅子捕食乙隻兔子的場景。

用結構化程式設計實現

用物件導向方式實現

strut lion

strut rubbit

定義函式:

void lionrunning(lion);

void lioncatch(lion,rubbit)

void lioneating(lion,rubbit )

void rubbitcrying(rubbit)

void rubbitrunning(rubbit)

bool rubbitisdead(rubbit);

class lion

;public void catch(rubbit);

public void eating(rubbit);

}class rubbit

主程式:

lion fatty;

rubbit may;

lionrunning(fatty);

rubbitrunning(may);

lioncatch(fatty,may);

rubbitcrying(may);

lioneating(fatty,may);

if (rubbitisdead(may))

主程式

lion fatty=new lion();

rubbit may = new rubbit();

fatty.running();

may.running();

fatty.catch(may);

may.crying();

fatty.eating(may);

if (may.isdead())

1

.從左邊的設計,我們看出**是一系列的函式構成,有以下幾點:

不直觀,程式的組織性不強,函式呼叫時不容易確定具體呼叫哪乙個

要傳的引數太多

2.右邊**,看起來要好一些,函式的引數少,而且都被組織到類的內部,要呼叫函式時只要確定是哪乙個物件要呼叫,就很容易找到,從程式呼叫來進右邊的主程式更接近現實世界的處理方式 二、

物件導向的特點

1.封裝

從上表右邊看來,函式**寫在類的內部,只能被類的物件所呼叫,別人不可隨便訪問,這樣可以保護你的**,而且函式與物件相關,方便呼叫

2.繼承

從**重用方面,我們可以把共性的特徵,和行為抽象出來,比如,程式的需求要我們實現所有的食肉動物都能捕食食草類動物,對於上表左邊程式,我們要全面修改**,而對於右邊的程式我們可做如下抽象:

class c

arnivore

class v

egetarian

然後,我們使用繼承

class lion : c

arnivore

class rubbit :v

egetarian

這樣,我們不用構造兩個類,就能使用它們公共的特徵和函式了

這樣一來,我們可以完成所有食肉動物與食草動物的捕食關係了

如果,我們要實現老虎捕食獵物,那也很容易了,

我們只要定義下面**:

class tigger : c

arnivore

就可以了

3.多型

從上面的繼承中我們可以看出,實現乙個新的類是那麼容易,

但大家想乙個問題,老虎與獅子,畢竟不是一種動物,那們的方法不可能完全相同,針對不同的子類,它的方法也不可能相同。比如它們的

方法可能是這樣的

這個問題我們放在下一課中祥細討論

三、物件導向設計程式的作用

1.重用**

2.可維護性高

3.可插入性(這個特點與多型相關,下次課重點講述)

意為:程式不需修改或少做修改,就可實現使用者提出的新的問題

如上面4.直觀,

更接近現實

5.方便呼叫

四、綜合

物件是什麼

從概念層面講,物件是某種擁有責任的抽象。(職能)

從規格層面講,物件是一系列可以被其他物件使用的公共介面。(物件互動)

從語言實現層面來看,物件封裝了**和資料。(資料和程式)

物件導向 基本概念

物件 由其責任定義的,能夠自己負責自己,從而簡化了使用物件的控制程式的任務。將責任轉移到更區域性的層次。類 class 根據物件所具有的責任定義物件的型別。責任 行為或狀態,這些分別是由方法和或資料實現的。具體類 concrete cass 實現抽象類某一特定型別行為的類,具體類是乙個概念特定不變的...

物件導向基本概念

物件導向是相對面向過程而言 物件導向和面向過程都是一種思想 面向過程強調的是功能 行為 物件導向 將功能封裝進物件,強調具備了功能的物件 物件導向是基於面向過程的 類的概念 具有相同屬性的一類事物 物件的概念 就是對這乙個類的具體的描述 比如人類就是抽象的類,具體的某乙個人就是物件,對人這個類的具體...

C 物件導向程式設計基本概念

繼承與派生 都是針對同一種技術現象的不同角度說法 子類繼承父類,父類派生出子類 繼承 乙個新類從已有的類那裡獲得其已有特性,這種現象稱為類的繼承。派生 從已有的類產生乙個新的子類 或稱為基類和派生類 多重繼承 乙個派生類有兩個或多個基類。派生類是基類的具體化,而基類是派生類的抽象。注 多重繼承的構造...