理解面向對象

爲什麼要學習面嚮對象語言?

我們知道,世界上的萬事萬物都可以看作是屬於不同類別的個體,或稱之爲對象,這些對象之間彼此存在着直接或間接的關聯。面向對象的設計思想恰好也是以類、類與類之間的關係作爲分析問題的基礎點,因此,使用面向對象的分析與設計能夠很自然地表示與系統相關的各個對象並表達這些對象之間的聯繫。

面向對象的概念

“面向對象”是圍繞現實世界中的概念來組織系統模型的一種嶄新的思維方式,其基本構造是對象,這些對象把特定的數據以及與該數據相關的行爲(或叫操作、方法)緊密的結合在一起組成單一實體,而“面向對象”把這些相互獨立的對象有效的緊密結合在一起組織系統。

面向對象的實質(這段實質理論性非常強,很難理解,是站在一個很高的角度上跟我們講原理)

“面向對象技術”的出發點和基本原則,是儘可能模擬人類習慣的思維方式,使開發軟件的方法與過程儘可能地接近人類認識世界和解決問題的方法與過程,也就是使描述問題的問題空間(也稱問題域)與實現解法的解空間(也稱求解域)在結構上儘可能一致。

“面向對象方法”所提供的“對象”概念,是讓軟件開發者自己定義或選取解空間對象,然後把軟件系統作爲一系列離散的解空間對象的集合。應該使這些解空間的對象與問題空間的對象儘可能的一致。這些解空間對象彼此之間通過發送消息而相互作用,從而得出問題的解。也就是說,“面向對象方法”是一種嶄新的思維方法,它不是把程序看作是工作在數據上的一系列過程或函數的集合,而是把程序看作是相互協作而又彼此獨立的對象的集合。每個對象都是一個有生命的個體,它有自己的數據、操作、功能和目的。這樣做就向着減少語義斷層的方向邁出了一大步,在許多系統中解空間對象都可以直接模擬問題空間的對象,解空間與問題空間結構十分地一致,因此,這樣的程序易於理解和維護。

OO方法強調從客觀世界的固有事物出發來構造系統,用人類習慣的思維方法來認識世界、理解和描述客觀事物,強調最終建立的軟件系統能夠映射問題域,對象及對象之間的關係能夠如實反映問題域中的事物及其關係。

面向對象的要點

四個要點:
    1.認爲現實世界是由各種對象組成,任何事物都是對象,複雜的對象可以由比較簡單的對象以某種方式組合而成。按此種觀點,可以認爲整個世界就是一個最複雜的對象。面向對象的軟件系統是由對象組成,軟件中的任何元素都是對象,複雜的軟件對象由比較簡單的對象組合而成。

    2.把所有對象都劃分成各種對象類(簡稱爲類),每個對象類定義了一組數據和一組方法。數據用於表示對象的靜態屬性,是對象的狀態信息。每當建立這個對象類的一個新實例時,就按照類中對數據的定義,爲這個新對象生成一組專用的數據,以便描述該對象獨特的屬性值。

    3.按照子類(也成派生類)與父類的關係,把若干個對象類組成一個層次結構的系統。在這種層次結構中,通常下層的派生類具有和上層的父類相同的特性(包括數據結構和方法),這種現象稱爲繼承。但是如果在子類中對某些特性又做了重新描述,則在子類中的這些特性將以新的描述爲準(Overloading),即地層的特性將屏蔽高層的同名特性。

    4.對象之間僅能通過傳遞消息相聯繫。對象與傳統的數據有本質的區別,它不是被動地等待外界對它施加操作,相反,它是進行處理的主體,必須發出消息請求它執行他的某個操作,處理它的私有數據,而不能從外界直接對它的私有數據進行操作。即,一切局部於該對象的私有信息,都被封裝在該對象類的定義中,好像裝在一個不透明的“黑匣子”裏一樣,外界看不見,更不能直接使用,這就是“封裝性”。

綜上所述,面向對象可以用下列方程來表達:
Object Orient = Objects + Classes + Inheritance + Communication with message
也就是說,面向對象就是既使用對象又使用類和繼承機制,而且對象之間僅能夠通過傳遞消息實現彼此通信。

如果僅使用對象和消息,則這種方法可以稱爲基於對象的(Object-based)方法,而不能稱爲面向對象的方法;如果進一步要求把所有對象都劃分爲類,則這種方法可稱爲基於類的(Class-based)方法,但仍不是面向對象方法。只有同時使用對象、類、繼承和消息的方法,纔是真正的面向對象方法。

面向對象的特性

三個基本的特性:封裝、繼承與多態。

詳細介紹我會在另外的文章中一一分析

面向對象的優點

       1.與人類習慣的思維方法一致;
       2.穩定性好;
       3.可重用性好;
       4.可維護性好

面向對象開發

面向對象開發涉及到軟件生命週期的前期部分:分析、設計和實現,由此產生了面向對象領域的三大技術:面向對象分析(OOA)、面向對象設計(OOD)和麪向對象編程(OOP)。

對象模型技術(OMT)是我們在進行面向對象分析與設計(OOA&D)時常用的建模方法,它涉及到對象發現、對象分析、對象設計以及對象實現。OMT用三種模型來刻畫一個系統:對象模型,它描述系統中的對象和它們之間的聯繫;動態模型,它描述系統中對象間的相互作用;功能模型,它描述系統中數據的變化。

面向對象開發主要有以下幾個步驟:(需求)分析、系統分析(設計)、對象分析(設計)、實現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章