日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

面向?qū)ο蟮奶攸c(diǎn)( 二 )


面向?qū)ο蟪绦蛟O(shè)計(jì)的三大特點(diǎn)是封裝、繼承和多態(tài) 。 ?0?2面向?qū)ο蟪绦蛟O(shè)計(jì)中的基本概念
“面向?qū)ο?rdquo;作為一個(gè)術(shù)語 , 在不同的人群中有著不同的解釋 。 因此 , 了解一些在面向?qū)ο蟪绦蛟O(shè)計(jì)中廣泛應(yīng)用的概念是必須的 。 本節(jié)我們討論以下這些內(nèi)容:
1、對(duì)象(Object)
2、類(Class)
3、數(shù)據(jù)抽象(Data abstraction)
4、繼承(Inheritance)
5、動(dòng)態(tài)綁定(Dynamic binding)
6、數(shù)據(jù)封裝(Data encapsulation)
7、多態(tài)性(Polymorphism)
8、消息傳遞(Message passing)

面向?qū)ο蟮奶攸c(diǎn)

對(duì)象
在一個(gè)面向?qū)ο蟮南到y(tǒng)中 , 對(duì)象是運(yùn)行期的基本實(shí)體 。 它可以用來表示一個(gè)人或者說一個(gè)銀行帳戶 , 一張數(shù)據(jù)表格 , 或者其它什么需要被程序處理的東西 。 它也可以用來表示用戶定義的數(shù)據(jù) , 例如一個(gè)向量 , 時(shí)間或者列表 。 在面向?qū)ο蟪绦蛟O(shè)計(jì)中 , 問題的分析一般以對(duì)象及對(duì)象間的自然聯(lián)系為依據(jù) 。 如前所述 , 對(duì)象在內(nèi)存中占有一定空間 , 并且具有一個(gè)與之關(guān)聯(lián)的地址 , 就像Pascal中的record和C中的結(jié)構(gòu)一樣 。
當(dāng)一個(gè)程序運(yùn)行時(shí) , 對(duì)象之間通過互發(fā)消息來相互作用 。 例如 , 程序中包含一個(gè)“customer”對(duì)象和一個(gè)“account”對(duì)象 , 而customer對(duì)象可能會(huì)向account對(duì)象發(fā)送一個(gè)消息 , 查詢其銀行帳目 。 每個(gè)對(duì)象都包含數(shù)據(jù)以及操作這些數(shù)據(jù)的代碼 。 即使不了解彼此的數(shù)據(jù)和代碼的細(xì)節(jié) , 對(duì)象之間依然可以相互作用 , 所要了解的只是對(duì)象能夠接受的消息的類型 , 以及對(duì)象返回的響應(yīng)的類型 , 雖然不同的人會(huì)以不同的方法實(shí)現(xiàn)它們 。

我們剛才提到 , 對(duì)象包含數(shù)據(jù)以及操作這些數(shù)據(jù)的代碼 。 一個(gè)對(duì)象所包含的所有數(shù)據(jù)和代碼可以通過類來構(gòu)成一個(gè)用戶定義的數(shù)據(jù)類型 。 事實(shí)上 , 對(duì)象就是類類型(class type)的變量 。 一旦定義了一個(gè)類 , 我們就可以創(chuàng)建這個(gè)類的多個(gè)對(duì)象 , 每個(gè)對(duì)象與一組數(shù)據(jù)相關(guān) , 而這組數(shù)據(jù)的類型在類中定義 。 因此 , 一個(gè)類就是具有相同類型的對(duì)象的抽象 。 例如 , 芒果、蘋果和桔子都是fruit類的對(duì)象 。 類是用戶定義的數(shù)據(jù)類型 , 但在一個(gè)程序設(shè)計(jì)語言中 , 它和內(nèi)建的數(shù)據(jù)類型行為相同 。 比如創(chuàng)建一個(gè)類對(duì)象的語法和創(chuàng)建一個(gè)整數(shù)對(duì)象的語法一模一樣 。 如果fruit被定義為一個(gè)類 , 那么語句
fruit mango;
就創(chuàng)建了一個(gè)fruit類的對(duì)象mango 。
數(shù)據(jù)抽象和封裝
把數(shù)據(jù)和函數(shù)包裝在一個(gè)單獨(dú)的單元(稱為類)的行為稱為封裝 。 數(shù)據(jù)封裝是類的最典型特點(diǎn) 。 數(shù)據(jù)不能被外界訪問 , 只能被封裝在同一個(gè)類中的函數(shù)訪問 。 這些函數(shù)提供了對(duì)象數(shù)據(jù)和程序之間的接口 。 避免數(shù)據(jù)被程序直接訪問的概念被稱為“數(shù)據(jù)隱藏” 。
抽象指僅表現(xiàn)核心的特性而不描述背景細(xì)節(jié)的行為 。 類使用了抽象的概念 , 并且被定義為一系列抽象的屬性如尺寸、重量和價(jià)格 , 以及操作這些屬性的函數(shù) 。 類封裝了將要被創(chuàng)建的對(duì)象的所有核心屬性 。 因?yàn)轭愂褂昧藬?shù)據(jù)抽象的概念 , 所以它們被稱為抽象數(shù)據(jù)類型(ADT) 。
封裝
封裝機(jī)制將數(shù)據(jù)和代碼捆綁到一起 , 避免了外界的干擾和不確定性 。 它同樣允許創(chuàng)建對(duì)象 。 簡單的說 , 一個(gè)對(duì)象就是一個(gè)封裝了數(shù)據(jù)和操作這些數(shù)據(jù)的代碼的邏輯實(shí)體 。

推薦閱讀