?? 1_5 +
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0035)http://leson.hongnet.com/vc/105.htm -->
<HTML><HEAD><TITLE>1.5 面向對象和Windows編程</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<STYLE type=text/css>TD {
COLOR: #000ff0; FONT-SIZE: 10.5pt; FONT-STYLE: normal; FONT-VARIANT: normal; FONT-WEIGHT: normal; LINE-HEIGHT: normal
}
BODY {
COLOR: #0080c5; FONT-SIZE: 10px; FONT-STYLE: normal; FONT-VARIANT: normal; FONT-WEIGHT: normal; LINE-HEIGHT: normal
}
A {
COLOR: blue; TEXT-DECORATION: none
}
A:hover {
COLOR: red; TEXT-DECORATION: underline
}
</STYLE>
<META content="MSHTML 5.00.2014.210" name=GENERATOR></HEAD>
<BODY>
<DIV align=center>
<CENTER>
<TABLE border=0 height=50 width="80%">
<TBODY>
<TR>
<TD height=10 width="100%">
<TABLE border=0 width="100%">
<TBODY>
<TR>
<TD width="100%">
<TABLE border=0 width="100%">
<TBODY>
<TR>
<TD vAlign=top width="57%">
<P align=center class=content4>1.5 面向對象和Windows編程</P>
<P
class=content4> 面向對象技術是目前流行的系統設計開發技術,它包括面向對象分析和面向對象程序設計。面向對象程序設計技術的提出,主要是為了解決傳統程序設計方法
結構化程序設計所不能解決的代碼重用問題。 </P>
<P
class=content4> 結構化程序設計從系統的功能入手,按照工程的標準和嚴格的規范將系統分解為若干功能模塊,系統是實現模塊功能的函數和過程的集合。由于用戶的需求和軟、硬件技術的不斷發展變化,按照功能劃分設計的系統模塊必然是易變的和不穩定的。這樣開發出來的模塊可重用性不高?!?lt;/P>
<P
class=content4> 面向對象程序設計從所處理的數據入手,以數據為中心而不是以服務(功能)為中心來描述系統。它把編程問題視為一個數據集合,數據相對于功能而言,具有更強的穩定性。 </P>
<P
class=content4> 面向對象程序設計同結構化程序設計相比最大的區別就在于:前者首先關心的是所要處理的數據,而后者首先關心的是功能?!?lt;/P>
<P
class=content4> 面向對象程序設計是一種圍繞真實世界的概念來組織模型的程序設計方法,它采用對象來描述問題空間的實體。關于對象這一概念,目前還沒有統一的定義。一般的認為,對象是包含現實世界物體特征的抽象實體,它反映了系統為之保存信息和(或)與它交互的能力。它是一些屬性及服務的一個封裝體,在程序設計領域,可以用
“對象=數據+作用于這些數據上的操作 ”這一公式來表達。 </P>
<P
class=content4> 類是具有相同操作功能和相同的數據格式(屬性)的對象的集合。類可以看作抽象數據類型的具體實現。抽象數據類型是數據類型抽象的表示形式。數據類型是指數據的集合和作用于其上的操作的集合,而抽象數據類型不關心操作實現的細節。從外部看,類型的行為可以用新定義的操作加以規定。類為對象集合的抽象,它規定了這些對象的公共屬性和方法;對象為類的一個實例。蘋果是一個類,而放在桌上的那個蘋果則是一個對象。對象和類的關系相當于一般的程序設計語言中變量和變量類型的關系?!?lt;/P>
<P
class=content4> 消息是向某對象請求服務的一種表達方式。對象內有方法和數據,外部的用戶或對象對該對象提出的服務請求,可以稱為向該對象發送消息。合作是指兩個對象之間共同承擔責任和分工?!?lt;/P>
<P class=content4> 面向對象的編程方法具有四個基本特征: </P>
<P class=content4>1.抽象:</P>
<P
class=content4> 抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。比如,我們要設計一個學生成績管理系統,考察學生這個對象時,我們只關心他的班級、學號、成績等,而不用去關心他的身高、體重這些信息。抽象包括兩個方面,一是過程抽象,二是數據抽象。過程抽象是指任何一個明確定義功能的操作都可被使用者看作單個的實體看待,盡管這個操作實際上可能由一系列更低級的操作來完成。數據抽象定義了數據類型和施加于該類型對象上的操作,并限定了對象的值只能通過使用這些操作修改和觀察?!?lt;/P>
<P class=content4>2.繼承:</P>
<P
class=content4> 繼承是一種聯結類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。這也體現了大自然中一般與特殊的關系。繼承性很好的解決了軟件的可重用性問題。比如說,所有的Windows應用程序都有一個窗口,它們可以看作都是從一個窗口類派生出來的。但是有的應用程序用于文字處理,有的應用程序用于繪圖,這是由于派生出了不同的子類,各個子類添加了不同的特性?!?lt;/P>
<P class=content4>3.封裝:</P>
<P
class=content4> 封裝是面向對象的特征之一,是對象和類概念的主要特性。封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始于這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。一旦定義了一個對象的特性,則有必要決定這些特性的可見性,即哪些特性對外部世界是可見的,哪些特性用于表示內部狀態。在這個階段定義對象的接口。通常,應禁止直接訪問一個對象的實際表示,而應通過操作接口訪問對象,這稱為信息隱藏。事實上,信息隱藏是用戶對封裝性的認識,封裝則為信息隱藏提供支持。封裝保證了模塊具有較好的獨立性,使得程序維護修改較為容易。對應用程序的修改僅限于類的內部,因而可以將應用程序修改帶來的影響減少到最低限度。</P>
<P class=content4>4. 多態性:</P>
<P
class=content4> 多態性是指允許不同類的對象對同一消息作出響應。比如同樣的加法,把兩個時間加在一起和把兩個整數加在一起肯定完全不同。又比如,同樣的選擇編輯-粘貼操作,在字處理程序和繪圖程序中有不同的效果。多態性包括參數化多態性和包含多態性。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。 </P>
<P class=content4> 面向對象程序設計具有許多優點: </P>
<P
class=content4>開發時間短,效率高,可靠性高,所開發的程序更強壯。由于面向對象編程的可重用性,可以在應用程序中大量采用成熟的類庫,從而縮短了開發時間?!?lt;/P>
<P
class=content4>應用程序更易于維護、更新和升級。繼承和封裝使得應用程序的修改帶來的影響更加局部化?!?lt;/P>
<P
class=content4> Windows的最初開發是在80年代早期,在C++出現之前,但是當時已經提出了面向對象式的程序設計思想。Windows的開發者們已經意識到將界面上不同的項看作對象的好處,但是他們仍然被迫采用傳統的C語言來處理這些對象。在Windows的界面設計和軟件開發環境中,可以說處處貫穿著面向對象的思想?!?lt;/P>
<P
class=content4> 在Windows中,程序的基本單位不是過程和函數,而是窗口。一個窗口是一組數據的集合和處理這些數據的方法和窗口函數。從面向對象的角度來看,窗口本身就是一個對象。Windows程序的執行過程本身就是窗口和其他對象的創建、處理和消亡過程。Windows中的消息的發送可以理解為一個窗口對象向別的窗口對象請求對象的服務過程。因此,用面向對象方法來進行Windows程序的設計與開發是極其方便的和自然的。 </P>
<P
class=content4> 采用面向對象的方法來進行Windows程序設計還可以簡化對資源的管理。當我們將資源映射成一個C++對象時,對資源的使用可以翻譯成以下C++順序: </P>
<P class=content4>1.創建一個對象:如定義一個畫筆對象 </P>
<P class=content4>2.使用對象:用畫筆繪圖 </P>
<P class=content4>3.撤消該對象</P>
<P
class=content4> 一個對象的創建是對一個對象的定義過程,可以由對象的構造函數處理對資源的請求過程。當某一個對象退出活動范圍時,它的撤消可以由編譯器來自動管理。各種資源和Windows結構都能以這種方式處理,如設備上下文、畫筆、字體、畫刷等等。</P>
<P align=right> [<A
href="http://leson.hongnet.com/vc/104.htm">上一頁</A>]</P>
<P> </P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></CENTER></DIV></BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -