① 面向對象的設計
面向對象設計是把分析階段得到的需求轉變成符合成本和質量要求的、抽象的系統實現方案的過程。從面向對象分析到面向對象設計,是一個逐漸擴充模型的過程。
瀑布模型把設計進一步劃早空分成概要設計和詳細設計兩個階段,類似地,也可以把面向對象設計再細分為系統設計和對象設計。系統設計確定實現系統的策略和目標系統的高層結構。對象設計確定解空間中的類、關聯、介面形式及實現操作的演算法。
(一)面向對象設計的准則
⒈模塊化
面向對象開發方法很自然地支持了把系統分解成模塊的設計原則:對象就是模塊。它是把數據結構和操作這些數據的方法緊密地結合在一起所構成的模塊。分解系統為一組具有高內聚和松耦合的模塊是模塊化的屬性。
⒉抽象
面向對象方法不僅支持過程抽象,而且支持數據抽象。
⒊信息隱藏
在面向對象方法中,信息隱藏通過對象的封裝性來實現。
⒋低耦合
在面向對象方法中,對象是最基本的模塊,因此,耦合主要指不同對象之間相互關聯的緊密程度。低耦合是設計的一個重要標准,因為這有助於使得系統中某一部分的變化對其它部分的影響降到最低程度。
⒌高內聚
⑴操作內聚。
⑵類內聚。
⑶一般——具體內聚。
(二)面向對象設計的啟發規則
⒈設計結果應該清晰易懂
使設計結果清晰、易懂、易讀是提高軟體可維護性和可重用性的重要措施。顯然,人們不會重用那些他們不理解的設計。
要做到:
⑴用詞一致。
⑵使用已有的協議。
⑶減少消息模式的數量。
⑷避免模糊的定義。
⒉一般——具體結構的深度應適當
⒊設計簡單類
應該盡量設計小而簡單的類,這樣便以開發和管理。為了保持簡單,應注意以下幾點:
⑴避免包含過多的屬性。
⑵有明確的定義。
⑶盡量簡化對象之間的合作關系。
⑷不要提供太多的操作。
⒋使用簡單的協議
一般來說,消息中參數不要超過3個。
⒌使用簡單的操作
面向對象設計出來的類中的操作通常都很小,一般只有3至5行源程序語句,可以用僅含一個動詞和一個賓語的簡單句子描述它的功能
⒍把設計變動減至最小
通常,設計的質量越高,設計結果保持不變的時間也越長。即使出現必須修改設計的情況,也應該使修改的范圍盡可能小。
(三)系統設計
系統設計是問題求解及建立解答的高級策略。必須制定解決問題的基該方法,系統的高層結構形式包括子系統的分解、它的固有並發性、陸迅瞎子系統分配給硬軟體、數據存儲管理、資源協調、軟體控制實現、人機交互介面。
⒈系統設計概述
設計階段先從高層入手,然後細化。系統設計要決定整個結構及風昌鎮格,這種結構為後面設計階段的更詳細策略的設計提供了基礎。
⑴系統分解。
系統中主要的組成部分稱為子系統,子系統既不是一個對象也不是一個功能,而是類、關聯、操作、事件和約束的集合。
⑵確定並發性。
分析模型、現實世界及硬體中不少對象均是並發的。
⑶處理器及任務分配。
各並發子系統必須分配給單個硬體單元,要麼是一個一般的處理器,要麼是一個具體的功能單元。
⑷數據存儲管理。
系統中的內部數據和外部數據的存儲管理是一項重要的任務。通常各數據存儲可以將數據結構、文件、資料庫組合在一起,不同數據存儲要在費用、訪問時間、容量及可靠性之間做出折衷考慮。
⑸全局資源的處理。
必須確定全局資源,並且制定訪問全局資源的策略。
⑹選擇軟體控制機制。
分析模型中所有交互行為都表示為對象之間的事件。系統設計必須從多種方法中選擇某種方法來實現軟體的控制。
⑺人機交互介面設計。
設計中的大部分工作都與穩定的狀態行為有關,但必須考慮用戶使用系統的交互介面。
⒉系統結構的一般框架
⒊系統分解——建立系統的體系結構
可用的軟體庫以及程序員的編程經驗。
通過面向對象分析得到的問題域精確模型,為設計體系結構奠定了良好的基礎,建立了完整的框架。
⒋選擇軟體控制機制
軟體系統中存在兩種控制流,外部控制流和內部控制流。
⒌數據存儲管理
數據存儲管理是系統存儲或檢索對象的基本設施,它建立在某種數據存儲管理系統之上,並且隔離了數據存儲管理模式的影響。
⒍設計人機交互介面
在面向對象分析過程中,已經對用戶界面需求作了初步分析,在面向對象設計過程中,則應該對系統的人機交互介面進行詳細設計,以確定人機交互的細節,其中包括指定窗口和報表的形式、設計命令層次等項內容。
(四)對象設計
⒈對象設計概述
⒉三種模型的結合
⑴獲得操作。
⑵確定操作的目標對象。
⒊演算法設計
⒋優化設計
⒌控制的實現
⒍調整繼承
⒎關聯的設計
② 面向對象分析與設計
UML面向對象清喊分析設計,就是利用UML建模表現面向對象開發中的分析和設計。
也就是你需要用UML中的各種賣和框圖從不同角度描述你的系統。
如下圖是UML用例圖,描述的是系統業務中用戶管理中正盯的部分。
③ 什麼是面向對象方法
對象是由數據和容許的操作組成的封裝體,與客觀實體有直接對應關系,一個對象類定義了具有相似性質的一組對象。而每繼承性是對具有層次關系的類的屬性和操作枯枝進行共享的一種方式。所謂面向對象就是基於對象概念,以對象為中心,以類和繼承為構造機制,來認識、理解、刻畫客觀世界和設計、構建相應的軟體系統。面向對象方法的具體實施步驟如下:1)面向對象分析:從問題陳述入手,分析和構造所關心的顯示世界問題域的模型,並用相應的符號系統表示。模型必須是簡潔、明確地抽象目標系統必須做的事,而不是如何做。分析步驟為:(1)確定問題域,包括定義論域,選擇論域,根據需要細化和增加論域;(2)區分類和對象,包括定義對象,定義類、命名;(3)區分整體對象以及組成部分,確定類的關系以及結構;(4)定義屬性,包括確定屬性,安排屬性;(5)定義服務,包括確定對象狀態,確定所需服務,確定消息聯結;(6)確定附加的系統約束。2)面向對象設計:面向對象的設計與傳統的以功能分解為主的寬握設計有所不同。具體設計步驟為:(1)應用面向對象分析,對用其他方法得到的系統分析的結果進行改進和完善;(2)設計交互過程和用戶介面;⑶設計任務管理,根據前一步驟確定是否需要多重任務,確定並發性,確定以何種方式驅動任務,設計子系統以及任務之間的協調與通信方式,確定優先順序;(4)設計全局資源,確定邊界條件,確定任務或子系統的軟、硬體分配;(5)對象設計。3)面向對象實現:使用面向對象語言實現面向對象的設計相對比較容易。如果用非面向對象語言實現面向對慎敗慶象的設計時,特別需要注意和規定保留程序的面向對象結構。傳統的面向功能的方法學中,強調的是確定和分解系統功能,這種做法雖然是目標的最直接的實現方式,但是由於功能是軟體系統中最不穩定、最容易變化的方面,因而使系統難以維護和擴展。面向對象設計首先強調來自域的對象,然後圍繞對象設置屬性和操作。用面向對象設計,其結構源於客觀世界穩定的對象結構。因而與傳統軟體設計方法相比,明顯提高了軟體的生產率,可靠性,易重用性、易維護性等方面的效果。
④ 面向對象分析和設計涉及到哪三個方面的內容
一套完善的建模符號,一系列有效的分析步驟和一個方便易用的建模工具。
面向對象的基本特徵是封裝、繼承、多態、抽象,這個是從實際代碼邏輯中進行解釋的,封裝就是代碼封裝在內部,構成一個整體功能,只提供某個方法給外面訪問,在php中寫的public function ,protected function 等就是給該函數方法設置訪問許可權,而function內部就是存放這塊代碼的功能邏輯。
(4)面向對象分析設計方法擴展閱讀:
面向對象分析注意事項:
封裝的是變數和方法,達到類褲清凳裡面的變數只能夠通過類所提供方法才能改變。就是說如果這個類造出了一個對象,那麼如果想改變這個對象的狀態,只能用有限的(所提供的)方法來改變。
沒有封裝前,程序在內存能夠執行。開辟的內存空間,誰都能訪問,能修改。很容易造成內存改變溢出,系統就崩潰。所以提出封裝的概念。經過長時間正信的實胡旅踐,才發現封裝比不封裝好。
⑤ 面向對象分析與設計的簡介
OOAD(Object Orient Analysis & Design,面向對象的分析和設計,面向對象分析與設計)是現代軟體企業廣為採用的一項有效技術。OOAD方法要求在設計中要映射現實世界中指定問題域中的對象和實體,例如:顧客、汽車和銷售人員等。這就需要設計要盡可能地接近現實世界,即以最自然的方式表述實體。所以面向對象技術的優點即為能夠構建與現實世界相對應的問題模型,並保持他們的結構、關系和行為為模式。
大師說:沒有不變的需求,世上的軟體都改動過3次以上,唯一一個只改動過兩次的軟體的擁有者已經死了,死在去修改需求的路上。
目前眾多的軟體項目有什麼樣的問題呢?早些時候上ERP的企業在企業發展的時候發現原有的ERP系統需要改進,可是要改進或者是更改現有的ERP系統,唯一的方法就是重新開發一個ERP系統。這對於企業來說是筆不小的支出。此時,落後的信息系統就成為制約企業發展的重要因素。是什麼原因造成了這種情況呢?主要的因素是傳統的系統分析是在假定需求不變的情況下進行的,這樣可以把企業的資源配置到最優的程度。可是在現代瞬息萬變的社會,一個企業固守舊有模式,勢必會在競爭中處於劣勢(因此現在也出現了組件化的ERP,這是題外話)。既然企業的需求是變化的、不穩定的,那麼以變化的需求為基礎建立起來的企業信息系統當然也就不穩定了。這時候,有個問題就產生了,前面我們已經說過,需求是項目的根本,既然需求都是不穩定的,那麼何以建立起穩定的企業信息系統呢?
要回答這個問題,首先要比較面向過程和面向對象的開發方法的差別,傳統的面向過程的開發方法在前20年大行其道,為中國企業的信息化建設立下了汗馬功勞。之所以稱為面向過程,是因為開發的焦點集中於過程,開發者集中於以函數為核心的過程,例如前些年很多人試圖編寫一些通用轉賬函數來滿足銀行的需求。面向過程的開發語言包括:Cobol、Pascal、C及C的變形語言。面向對象的概念是在近10年才進入中國的,而它的思想至今也沒有真正意義上得到普及。簡單的說,面向對象就是面向世界,世界上的任何事物都是對象,因此面向對象是很自然的思想,是符合我們的思維習慣的。面向對象的語言包括了Smalltalk、C++、Java,還有Object Pascal,以及剛剛誕生的C#。
需求是不穩定的,那麼需求之中是不是沒有穩定的東西呢?有的,就是對象。世界都是由對象組成的,而對象都是持久的,例如動物、植物已經有相當長的時間。雖然對象也在變化,動物,植物也在不斷的進化。但對象在一個相當長的時期內都存在,動植物的存在時間肯定比任何一家企業長久。面向對象的開發方法的精髓就是從企業的不穩定需求中分析出企業的穩定對象,以企業對象為基礎來組織需求、構架系統。這樣得出的系統就會比傳統的系統要穩定得多,因為企業的模式一旦變化,只需要將穩定的企業對象重新組織就行了。這種開發的方法就被稱為OOAD(Object Orient Analysis & Design 面向對象的分析和設計),而分析出的企業對象就被稱為Common Business Object。
⑥ 什麼才是真正的面向對象設計方法
面向對象是一種程序設計方法,它以對磨斗象作為基本的單元來構建系統,它利用對象將系統的復雜性隱藏在對象里(也就是常說的封裝),從而構建大型的工業級系統和大型系統(注意是工業及系統和大型軟體系統而不是播放器等小型的系統)。面向對象包括三個過程:面向對象分析(OOA)、面向對象設計(OOD)、面向對象編程(OOP)。
1。什麼是面向對象的分析?
面向對象的分析指的是分析要開發的系統的各個方面,從而找出類和對象(不是你想有什麼對象就有什麼對象的)。
2.什麼是面向對象的設計?
是指我們設計出一些特殊的類(如:抽象類,目的:來表達系統中不同對象的共性)和機制(讓系統的對象互相協作,提供系統的功能肆游物);
3.什麼是面向對象的編程?
是指我們用特定的面向對象編程語言來實現我們的設計,實現我們發現的對象和類。裂液
使用面向對象的困難在於找出系統的對象和類很困難,這常常需要經驗、洞察力、嚴密的邏輯思維能力和創造力(這是最重要的),以及設計特殊的類和機制很困難。但是一旦做好了分析和設計,一切都變得極其簡單。所以大多數人都會選擇使用面向過程而不是用面向對象。
不要以為面向對象就是你的教材里講的那些東西,面向對象還有許許多多的概念,而這些概念常常被忽略、吳用。
用面向對象設計你還要用學一樣東西:UML(統一建模語言),這個語言在國人教材中沒提到到(實際上沒提到的東西多了)。
建議:去書店認認真真地找一本書國外的關於面向對象的書籍,這樣你才能學到面向對象的精髓。
⑦ 面向對象方法的要點有哪些
面向對象的主線:
Java類及類的成員:屬性、方法、構造器(高頻);代碼塊、內部類(低頻) (類是由對象派生的)
面向對象的三大特徵:封裝(Encapsulation)、繼承(Inheritance)、多態(Polymorphism)、(抽象性)
其它關鍵字:this、super、static、final、abstract、interface、package、import等
面向過程(ProcereOrientedProgramming)與面向對象(ObjectOriented Programming)的理解
二者都是一種思想,
面向對象是相對於面向過程而言的。
面向過程,強調的是功能行為,以函數為最小單位,考慮怎麼做。
面向對象,將功能封裝進對象,強調具備了功能的對象,以類/對象為最小單位,考慮誰來做。而且更加強調運用人類在日常的思維邏輯中採用的思想方法與原則,如抽象、分類、繼承、聚合、多態等。
1.面向過程:強調的是功能行為,以函數為最小單位,考慮怎麼做。
2.面向對象:強調具備功能得對象,以類/對象為最小單位,考慮誰來做。
1.面向過程:強調的是功能行為,以函數為最小單位,考慮怎麼做。
2.面向對象:強調具備了功能的對象,以類/對象為最小單位,考慮誰來做。
面向對象的思想概述扒並豎
類(Class)和對象(Object)是面向對象的核心概念。
類是對一類事物的描述,是抽象的、概念上的定義
對象是實際存在的該類事物的每個個體,因而也稱為實例(instance)。
程序員從面向過程的執行者轉化蔽拆成了面向對象的指揮者
面向對象分析方法分析問題的思路和步驟:
根據問題需要,選擇問題所針對的現實世界中的實體。
從實體中尋找解決問題相關的屬性和功能,這些屬性和功能就形成了概念世界中的類。
把抽象的實體用計算機語言進行描述,形成計算機世界中類的定義。即藉助某種程序語言,把類構造成計算機能夠識別和處理的數據結構。
將類實例化成計算機世界中的對象。對象是計算機世界中解決問題的最終工具。
面向對象的兩個要素:類和對象類 :對一類事物的描述,是抽象的、概念上的定義
對象:是實際存在的該類事物的每個個體(實實在在的個體),因而也稱為實例(instance)。
以人為例子: 類 = 抽象概念的人 ; 對象 = 實實在在的某個人
面向對象程序設計的重點是類的設計
設計類,就是設計類的成員。
二者關系:對象是由類派生(new)出來的、對象是類的實例化
類的結構:屬性和方法
現實世界的生物體,大到鯨魚,小到螞蟻,都是由最基本的細胞構成的。
同理,Java代碼世界是由諸多個不同功能春大的類構成的。
現實生物世界中的細胞又是由什麼構成的呢?細胞核、細胞質、…那麼,Java中用類class來描述事物也是如此。常見的類的成員有:
屬性:對應類中的成員變數
行為:對應類中的成員方法
類和對象的創建和執行操作有那三步(落地實現的規則)?
①創建類,設計類的成員
②類的實例化(創建類的對象)
③通過「對象.屬性」或 「對象.方法」調用對象的結構
幾個常用的概念
屬性= 成員變數 = Field = 域、欄位
方法= 成員方法 = Method =函數
創建類的對象 = 類的實例化 = 實例化類
⑧ 面向對象分析與設計面向對象設計包括哪些內容
一、總述
面向對象分析的輸入是用戶的功能需求,輸出是簡單的、理性化的分析模型,此階段的工作更多側重於如何理解軟體的功能需求;
面向對象設計的輸入是面向對象分析的結果,蔬菜水果最終的、細化後的設計模型,此階段的工作更多側重於如何得到一個合適的、完整的解決方案。
二、主要區別
(1) 在側重點上,面向對象分析側重於理解問題,描述軟體要做什麼,而面向對象設計側重於理解解決方案,描述軟體要如何做。
(2) 面向對象分析一般只考慮理想餓設計,不關心技術和實現層面的細節,而面向對象設計需要得到更具體、更詳盡,更接近於真實的代碼的設計方案。
(3) 在設計結果的描方式上,面向對象分析階段側重於描述對象的行為,而面向對象設計階段側重於描述對象的屬性和方法。
(4) 面向對象分析只關注功能性需求,而面向對象設計既關注功能性需求,也關注非功能性需求。
(5) 面向對象分析產生的系統模型通常規模較小,而面向對象設計產生的系統模型規模較大,內容也比較詳盡、完整。
三、分析設計工具(RationalRose + UML)
1、需求分析階段
常藉助於「用例圖」、「順序圖」對功能模型進行建模;
用例描述,一般包括:用例名稱,系統范圍,用戶目標,前置條件,執行過程,擴展情況,後置條件。
順序圖著眼於整個系統。
2、面向對象分析階段(包含需求分析階段的用例建模)
常藉助於「類圖、對象圖」,「順序圖、協作圖」,「狀態圖」進行靜態模型建模和動態模型建模。
這里的類圖主要指通過用例分析得到的實體類、控制類和邊界類。
順序圖也著眼於各個分析類對象間的協作。
3、面向對象設計階段
常藉助於「類圖」,「順序圖、協作圖」,「狀態圖」來細化各個類以及對象間的協作、關系的可見性;
這里的類圖,要具體到屬性、方法,類之間的關系依賴(繼承、組合、聚合)
這里的順序圖要具體到各個類的實例之間的消息傳遞、函數調用。
面向對象設計階段常藉助一些設計模式達到軟體的可擴展行,應對軟體的可預測到的變化。
⑨ 面向對象技術的分析方法
面向對象的分析方法是利用面向對象的信息建模概念,如實體、關系、屬性等,同時運用封裝、繼承、多態等機制來構造模擬現實系統的方法。
傳統的結構化設計方法的襪戚基本點是面向過程,系統被分解成若干個過程。而面向對象的方法是採用構造模型的觀點巧好唯,在系統的開發過程中,各個步驟的共同的目標是建造一個問題域的模型。在面向對象的設計中,初始元素是對象,然後將具有共同特徵的對象歸孝培納成類,組織類之間的等級關系,構造類庫。在應用時,在類庫中選擇相應的類。
⑩ 面向對象程序設計主要有哪些方法
程序設計主要方法有面向結構的方法和面向對象的方法。
結構化程序設計
隨著計算機的價格不斷下降,硬體環境不斷改善,運行速度不斷提升。程序越寫越大,功能越來越強,講究技巧的程序設計方法已經不能適應需求了。記得是哪本書上講過,一個軟體的開發成本是由:程序設計 30% 和程序維護 70% 構成。這是書上嘩或改給出的一個理論值,但實際上,從我十幾年的工作經驗中,我得到的體會是:程序設計占 10%,而維護要佔 90%。也許我說的還是太保守了,維護的成本還應該再提高。下面這個程序,提供了兩種設計方案,大家看看哪個更好一些那?
題目:對一個數組中的100個元素,從小到大排序並顯示輸出。(BASIC)
方法1:冒泡法排序,同時輸出。
FOR I=1 TO 100
FOR J=I+1 TO 100
IF A[I] > A[J] THEN T=A[J]: A[J]=A[I]: A[I]=T
NEXT J
? A[I]
NEXT I
方法2:冒泡法排序,然後再輸出。
FOR I=1 TO 100
FOR J=I+1 TO 100
IF A[I] > A[J] THEN T=A[J]: A[J]=A[I]: A[I]=T
NEXT
NEXT
FOR I=1 TO 100
? A[I]
NEXT
顯然,「方法1」比「方法2」的效率要高,運行的更快。但是,從現在的程序設計角度來看,「方法2」更高級。原因很簡單:(1)功能模塊分割清晰——易讀;(2)也是最重要的——易維護。程序在設計階段的時候,就要考慮以後的維護問題。比如現在是實現了在屏幕上的輸出,也許將來某一天,你要修改程序,輸出到列印機上、輸出到繪圖儀上;也許將來某一天,你學習了一個新的高級的排序方法,由「冒泡法」改進為「快速排序」、「堆排序」。那麼在「方法2」的基礎上進行修改,是不是就更簡單了,更容易了?!這種把功能模塊分離的程序設計方法,就叫「結構化程序設計」。
面向對象的程序設計
隨著程序的設計的復雜性增加,結構化程序設計方法又不夠用了。不夠用的根本原因是「代碼重用」的時候不方便。面向對象的方法誕生了,它通過繼承來實現比較完善的代碼重用功能。很多學生在應聘工作,面試的時候,常被問及一個問題「你來談談什麼是面向對象的程序設計」,學生無言,回來問我,這個問題應該怎麼回答。我告訴他,你只要說一句話就夠了「面向對象程序設計是對數據的封裝;範式(模板)的程序設計是對演算法的封裝。」後來再有學生遇到了這個問題,只簡單的一句對答,對方就對這個學生就刮目相看了(學生後來自豪地告訴我的)。為什麼那?因為只有經過徹底的體會和實踐才能提煉出這個精華。
面向對象的設計方法和思想,其實早在70年代初就已經被提出來了。其目的就是:強製程亂判序必須通過函數的方式來操縱數據。這樣實現了數據的封裝,就避免了以前設計方法中的,任何代碼都可以隨便操作數據而因起的BUG,而查找修改這個BUG是非常困難的。那麼你可以說,即使我不使用面向對象,當我想訪問某個數據的時候,我就通過調用函數訪問不就可以了嗎?是的,的確可以,但並不是強制的。人都有惰性,當我想對 i 加1的時候,干嗎非要調用函數呀?算了,直接i++多省事呀。呵呵,正式由於這個懶惰,當程序出BUG的時候,可就不好捉啦。而面向對象是強制性的,從編譯階段就解決了你懶惰的問題。
巧合的是,面向對象的思想,其實和我們的日常生活中處理問題是吻合的。舉例來說,我打算丟掉一個茶杯,怎麼扔那?太簡單了,拿起茶杯,走到垃圾桶,扔!注意分析這個過程,我們是先選一個「對象」------茶杯,然後向這個對象施加一個動作——扔。每個對象所能施加在它上面的動作是有一定限制的:茶杯,可以被扔,可以被砸,可以用來喝水,可以敲它發出聲音......;一張紙,可以被寫字,可以撕,可以燒......。也就是說,一旦確定了一個對象,則方法也就跟著確定了。我們的日常生活就是如此。但是,大家回想一下我們程序設計和對計算機的操作,卻不是這樣的。拿DOS的操作來說,我要刪除一個文件,方法是在DOS提示符下:c:> del 文件名<回車>。注意看這個過程,動作在前(del),對象在後(文件名),和面向對象的方法正好順序團悔相反。那麼只是一個順序的問題,會帶來什麼影響那?呵呵,大家一定看到過這個現象:File not found. 「啊~~~,我錯了,我錯了,文件名敲錯了一個字母」,於是重新輸入:c:> del 文件名2<回車>。不幸又發生了,計算機報告:File read only. 哈哈,痛苦吧:)。所以DOS的操作其實是違反我們日常生活中的習慣的(當然,以前誰也沒有提出過異議),而現在由於使用了面向對象的設計,那麼這些問題,就在編譯的時候解決了,而不是在運行的時候。obj.fun(),對於這條語句,無論是對象,還是函數,如果你輸入有問題,那麼都會在編譯的時候報告出來,方便你修改,而不是在執行的時候出錯,害的你到處去捉蟲子。
同時,面向對象又能解決代碼重用的問題——繼承。我以前寫了一個「狗」的類,屬性有(變數):有毛、4條腿、有翹著的尾巴(耷拉著尾巴的那是狼)、鼻子很靈敏、喜歡吃肉骨頭......方法有(函數):能跑、能聞、汪汪叫......如果它去抓耗子,人家叫它「多管閑事」。好了,狗這個類寫好了。但在我實際的生活中,我家養的這條狗和我以前寫的這個「狗類」非常相似,只有一點點的不同,就是我的這條狗,它是:捲毛而且長長的,鼻子小,嘴小......。於是,我派生一個新的類型,叫「哈巴狗類」在「狗類」的基礎上,加上新的特性。好了,程序寫完了,並且是重用了以前的正確的代碼——這就是面向對象程序設計的好處。我的成功只是站在了巨人的肩膀上。當然,如果你使用VC的話,重用最多的代碼就是MFC的類庫。