面向?qū)ο蟪绦蛟O(shè)計(jì)即:面向?qū)ο缶幊蹋∣bject Oriented Programming,簡(jiǎn)稱OOP),是一種計(jì)算機(jī)編程架構(gòu)。OOP 的一條基本原則是計(jì)算機(jī)程序是由單個(gè)能夠起到子程序作用的單元或?qū)ο蠼M合而成。OOP 達(dá)到了軟件工程的三個(gè)主要目標(biāo):重用性、靈活性和擴(kuò)展性。為了實(shí)現(xiàn)整體運(yùn)算,每個(gè)對(duì)象都能夠接收信息、處理數(shù)據(jù)和向其它對(duì)象發(fā)送信息。
面向?qū)ο蟪绦蛟O(shè)計(jì)中的概念主要包括:對(duì)象、類、數(shù)據(jù)抽象、繼承、動(dòng)態(tài)綁定、數(shù)據(jù)封裝、多態(tài)性、消息傳遞。通過這些概念面向?qū)ο蟮乃枷氲玫搅司唧w的體現(xiàn)。
1)對(duì)象(Object) 可以對(duì)其做事情的一些東西。一個(gè)對(duì)象有狀態(tài)、行為和標(biāo)識(shí)三種屬性。
2)類(class) 一個(gè)共享相同結(jié)構(gòu)和行為的對(duì)象的集合。
類(Class)定義了一件事物的抽象特點(diǎn)。通常來(lái)說,類定義了事物的屬性和它可以做到的(它的行為)。舉例來(lái)說,“狗”這個(gè)類會(huì)包含狗的一切基礎(chǔ)特征,例如它的孕育、毛皮顏色和吠叫的能力。類可以為程序提供模版和結(jié)構(gòu)。一個(gè)類的方法和屬性被稱為“成員”。
3)封裝(encapsulation): 第一層意思:將數(shù)據(jù)和操作捆綁在一起,創(chuàng)造出一個(gè)新的類型的過程。第二層意思:將接口與實(shí)現(xiàn)分離的過程。
4)繼承 類之間的關(guān)系,在這種關(guān)系中,一個(gè)類共享了一個(gè)或多個(gè)其他類定義的結(jié)構(gòu)和行為。繼承描述了類之間的“是一種”關(guān)系。子類可以對(duì)基類的行為進(jìn)行擴(kuò)展、覆蓋、重定義。
5)組合 既是類之間的關(guān)系也是對(duì)象之間的關(guān)系。在這種關(guān)系中一個(gè)對(duì)象或者類包含了其他的對(duì)象和類。
組合描述了“有”關(guān)系。
6)多態(tài) 類型理論中的一個(gè)概念,一個(gè)名稱可以表示很多不同類的對(duì)象,這些類和一個(gè)共同超類有關(guān)。因此,這個(gè)名稱表示的任何對(duì)象可以以不同的方式響應(yīng)一些共同的操作集合。
7)動(dòng)態(tài)綁定 也稱動(dòng)態(tài)類型,指的是一個(gè)對(duì)象或者表達(dá)式的類型直到運(yùn)行時(shí)才確定。通常由編譯器插入特殊代碼來(lái)實(shí)現(xiàn)。與之對(duì)立的是靜態(tài)類型。
8)靜態(tài)綁定 也稱靜態(tài)類型,指的是一個(gè)對(duì)象或者表達(dá)式的類型在編譯時(shí)確定。
9)消息傳遞 指的是一個(gè)對(duì)象調(diào)用了另一個(gè)對(duì)象的方法(或者稱為成員函數(shù))。
10)方法 也稱為成員函數(shù),是指對(duì)象上的操作,作為類聲明的一部分來(lái)定義。方法定義了可以對(duì)一個(gè)對(duì)象執(zhí)行那些操作。
更多建議: