當前位置:編程學習大全網 - 編程語言 - 8.1.1什麽是面向對象的程序設計.ppt

8.1.1什麽是面向對象的程序設計.ppt

面向對象

面向對象(Object Oriented,OO)是當前計算機界關心的重點,它是90年代軟件開發方法的主流。面向對象的概念和應用已超越了程序設計和軟件開發,擴展到很寬的範圍。如數據庫系統、交互式界面、應用結構、應用平臺、分布式系統、網絡管理結構、CAD技術、人工智能等領域。

談到面向對象,這方面的文章非常多。但是,明確地給出對象的定義或說明對象的定義的非常少——至少我現在還沒有發現。其初,“面向對象”是專指在程序設計中采用封裝、繼承、抽象等設計方法。可是,這個定義顯然不能再適合現在情況。面向對象的思想已經涉及到軟件開發的各個方面。如,面向對象的分析(OOA,Object Oriented Analysis),面向對象的設計(OOD,Object Oriented Design)、以及我們經常說的面向對象的編程實現(OOP,Object Oriented Programming)。許多有關面向對象的文章都只是講述在面向對象的開發中所需要註意的問題或所采用的比較好的設計方法。看這些文章只有真正懂得什麽是對象,什麽是面向對象,才能最大程度地對自己有所裨益。這壹點,恐怕對初學者甚至是從事相關工作多年的人員也會對它們的概念模糊不清。

面向對象是當前計算機界關心的重點,它是90年代軟件開發方法的主流。面向對象的概念和應用已超越了程序設計和軟件開發,擴展到很寬的範圍。如數據庫系統、交互式界面、應用結構、應用平臺、分布式系統、網絡管理結構、CAD技術、人工智能等領域。

壹、傳統開發方法存在問題

1.軟件重用性差

重用性是指同壹事物不經修改或稍加修改就可多次重復使用的性質。軟件重用性是軟件工程追求的目標之壹。

2.軟件可維護性差

軟件工程強調軟件的可維護性,強調文檔資料的重要性,規定最終的軟件產品應該由完整、壹致的配置成分組成。在軟件開發過程中,始終強調軟件的可讀性、可修改性和可測試性是軟件的重要的質量指標。實踐證明,用傳統方法開發出來的軟件,維護時其費用和成本仍然很高,其原因是可修改性差,維護困難,導致可維護性差。

3.開發出的軟件不能滿足用戶需要

用傳統的結構化方法開發大型軟件系統涉及各種不同領域的知識,在開發需求模糊或需求動態變化的系統時,所開發出的軟件系統往往不能真正滿足用戶的需要。

用結構化方法開發的軟件,其穩定性、可修改性和可重用性都比較差,這是因為結構化方法的本質是功能分解,從代表目標系統整體功能的單個處理著手,自頂向下不斷把復雜的處理分解為子處理,這樣壹層壹層的分解下去,直到僅剩下若幹個容易實現的子處理功能為止,然後用相應的工具來描述各個最低層的處理。因此,結構化方法是圍繞實現處理功能的“過程”來構造系統的。然而,用戶需求的變化大部分是針對功能的,因此,這種變化對於基於過程的設計來說是災難性的。用這種方法設計出來的系統結構常常是不穩定的 ,用戶需求的變化往往造成系統結構的較大變化,從而需要花費很大代價才能實現這種變化。

二、面向對象的基本概念

(1)對象。

對象是人們要進行研究的任何事物,從最簡單的整數到復雜的飛機等均可看作對象,它不僅能表示具體的事物,還能表示抽象的規則、計劃或事件。

(2)對象的狀態和行為。

對象具有狀態,壹個對象用數據值來描述它的狀態。

對象還有操作,用於改變對象的狀態,對象及其操作就是對象的行為。

對象實現了數據和操作的結合,使數據和操作封裝於對象的統壹體中

(3)類。

具有相同或相似性質的對象的抽象就是類。因此,對象的抽象是類,類的具體化就是對象,也可以說類的實例是對象。

類具有屬性,它是對象的狀態的抽象,用數據結構來描述類的屬性。

類具有操作,它是對象的行為的抽象,用操作名和實現該操作的方法來描述。

(4)類的結構。

在客觀世界中有若幹類,這些類之間有壹定的結構關系。通常有兩種主要的結構關系,即壹般--具體結構關系,整體--部分結構關系。

①壹般——具體結構稱為分類結構,也可以說是“或”關系,或者是“is a”關系。

②整體——部分結構稱為組裝結構,它們之間的關系是壹種“與”關系,或者是“has a”關系。

(5)消息和方法。

對象之間進行通信的結構叫做消息。在對象的操作中,當壹個消息發送給某個對象時,消息包含接收對象去執行某種操作的信息。發送壹條消息至少要包括說明接受消息的對象名、發送給該對象的消息名(即對象名、方法名)。壹般還要對參數加以說明,參數可以是認識該消息的對象所知道的變量名,或者是所有對象都知道的全局變量名。

類中操作的實現過程叫做方法,壹個方法有方法名、參數、方法體。消息傳遞如圖10-1所示。

二、面向對象的特征

(1)對象唯壹性。

每個對象都有自身唯壹的標識,通過這種標識,可找到相應的對象。在對象的整個生命期中,它的標識都不改變,不同的對象不能有相同的標識。

(2)分類性。

分類性是指將具有壹致的數據結構(屬性)和行為(操作)的對象抽象成類。壹個類就是這樣壹種抽象,它反映了與應用有關的重要性質,而忽略其他壹些無關內容。任何類的劃分都是主觀的,但必須與具體的應用有關。

(3)繼承性。

繼承性是子類自動***享父類數據結構和方法的機制,這是類之間的壹種關系。在定義和實現壹個類的時候,可以在壹個已經存在的類的基礎之上來進行,把這個已經存在的類所定義的內容作為自己的內容,並加入若幹新的內容。

繼承性是面向對象程序設計語言不同於其它語言的最重要的特點,是其他語言所沒有的。

在類層次中,子類只繼承壹個父類的數據結構和方法,則稱為單重繼承。

在類層次中,子類繼承了多個父類的數據結構和方法,則稱為多重繼承。

在軟件開發中,類的繼承性使所建立的軟件具有開放性、可擴充性,這是信息組織與分類的行之有效的方法,它簡化了對象、類的創建工作量,增加了代碼的可重性。

采用繼承性,提供了類的規範的等級結構。通過類的繼承關系,使公***的特性能夠***享,提高了軟件的重用性。

(4)多態性(多形性)

多態性使指相同的操作或函數、過程可作用於多種類型的對象上並獲得不同的結果。不同的對象,收到同壹消息可以產生不同的結果,這種現象稱為多態性。

多態性允許每個對象以適合自身的方式去響應***同的消息。

多態性增強了軟件的靈活性和重用性。

對象,強調物體屬性, 比如實現邏輯 物體A 移動到B點,

對象思想就是要妳想象 妳吧A 看成什麽 妳可以吧它看成車, 用車輪的方式(方法)讓它走動, 可以看成托運(方法)的方式拉過去。

面向對象的方法 是壹類物體的屬性 所具備的 行為,理論上 可以參照面向過程的函數去理解

兒面向過程, 我不關心妳用什麽方式,看成什麽 ,管妳是推,是拽,只要妳運過來就行 相對而言 沒有針對性

樓主可以 設想壹下網絡遊戲, 妳玩的遊戲 的怪物, 是分種類的, 他們都是自動的東西, 沒人去手動生成, 壹類怪物 有壹類招數和樣子, 行為屬性, 這就是對象思想

  • 上一篇:互感器短接竊電是什麽意思
  • 下一篇:如何學習Linux設備驅動
  • copyright 2024編程學習大全網