①壹般——具體結構稱為分類結構,也可以說是“或”關系,或者是“is a”關系。
②整體——部分結構稱為組裝結構,它們之間的關系是壹種“與”關系,或者是“has a”關系。
(3)對象
對象是人們要進行研究的任何事物,從最簡單的整數到復雜的飛機等均可看作對象,它不僅能表示具體的事物,還能表示抽象的規則、計劃或事件。
(4)對象的狀態和行為
對象具有狀態,壹個對象用數據值來描述它的狀態。
對象還有操作,用於改變對象的狀態,對象及其操作就是對象的行為。
對象實現了數據和操作的結合,使數據和操作封裝於對象的統壹體中
(5)消息和方法
對象之間進行通信的結構叫做消息。在對象的操作中,當壹個消息發送給某個對象時,消息包含接收對象去執行某種操作的信息。發送壹條消息至少要包括說明接受消息的對象名、發送給該對象的消息名(即對象名、方法名)。壹般還要對參數加以說明,參數可以是認識該消息的對象所知道的變量名,或者是所有對象都知道的全局變量名。
特征
(1)對象唯壹性
每個對象都有自身唯壹的標識,通過這種標識,可找到相應的對象。在對象的整個生命期中,它的標識都不改變,不同的對象不能有相同的標識。
(2)分類性
分類性是指將具有壹致的數據結構(屬性)和行為(操作)的對象抽象成類。壹個類就是這樣壹種抽象,它反映了與應用有關的重要性質,而忽略其他壹些無關內容。任何類的劃分都是主觀的,但必須與具體的應用有關。
(3)繼承性
繼承性是子類自動***享父類數據結構和方法的機制,這是類之間的壹種關系。在定義和實現壹個類的時候,可以在壹個已經存在的類的基礎之上來進行,把這個已經存在的類所定義的內容作為自己的內容,並加入若幹新的內容。
繼承性是面向對象程序設計語言不同於其它語言的最重要的特點,是其他語言所沒有的。
在類層次中,子類只繼承壹個父類的數據結構和方法,則稱為單重繼承。
在類層次中,子類繼承了多個父類的數據結構和方法,則稱為多重繼承。
在軟件開發中,類的繼承性使所建立的軟件具有開放性、可擴充性,這是信息組織與分類的行之有效的方法,它簡化了對象、類的創建工作量,增加了代碼的可重性。
采用繼承性,提供了類的規範的等級結構。通過類的繼承關系,使公***的特性能夠***享,提高了軟件的重用性。
(4)多態性(多形性)
多態性是指相同的操作或函數、過程可作用於多種類型的對象上並獲得不同的結果。不同的對象,收到同壹消息可以產生不同的結果,這種現象稱為多態性。
多態性允許每個對象以適合自身的方式去響應***同的消息。
多態性增強了軟件的靈活性和重用性。
要素
(1)抽象
抽象是指強調實體的本質、內在的屬性。在系統開發中,抽象指的是在決定如何實現對象之前的對象的意義和行為。使用抽象可以盡可能避免過早考慮壹些細節。
類實現了對象的數據(即狀態)和行為的抽象。
(2)封裝性(信息隱藏)
封裝性是保證軟件部件具有優良的模塊性的基礎。
面向對象的類是封裝良好的模塊,類定義將其說明(用戶可見的外部接口)與實現(用戶不可見的內部實現)顯式地分開,其內部實現按其具體定義的作用域提供保護。
對象是封裝的最基本單位。封裝防止了程序相互依賴性而帶來的變動影響。面向對象的封裝比傳統語言的封裝更為清晰、更為有力。
(3)***享性
面向對象技術在不同級別上促進了***享:
①同壹類中的***享
同壹類中的對象有著相同數據結構。這些對象之間是結構、行為特征的***享關系。
②在同壹應用中***享
在同壹應用的類層次結構中,存在繼承關系的各相似子類中,存在數據結構和行為的繼承,使各相似子類***享***同的結構和行為。使用繼承來實現代碼的***享,這也是面向對象的主要優點之壹。
③在不同應用中***享
面向對象不僅允許在同壹應用中***享信息,而且為未來目標的可重用設計準備了條件。通過類庫這種機制和結構來實現不同應用中的信息***享。
(4).強調對象結構而不是程序結構
開發方法
面向對象開發方法的研究已日趨成熟,國際上已有不少面向對象產品出現。面向對象開發方法有Coad方法、Booch方法和OMT方法等。
(1)Booch方法
Booch最先描述了面向對象的軟件開發方法的基礎問題,指出面向對象開發是壹種根本不同於傳統的功能分解的設計方法。面向對象的軟件分解更接近人對客觀事務的理解,而功能分解只通過問題空間的轉換來獲得。
(2)Coad方法
Coad方法是1989年Coad和Yourdon提出的面向對象開發方法。該方法的主要優點是通過多年來大系統開發的經驗與面向對象概念的有機結合,在對象、結構、屬性和操作的認定方面,提出了壹套系統的原則。該方法完成了從需求角度進壹步進行類和類層次結構的認定。盡管Coad方法沒有引入類和類層次結構的術語,但事實上已經在分類結構、屬性、在客觀世界中有若幹類,這些類之間有壹定的結構關系。通常有兩種主要的結構關系,即壹般--具體結構關系,整體--部分結構關系。
①壹般——具體結構稱為分類結構,也可以說是“或”關系,或者是“is a”關系。
②整體——部分結構稱為組裝結構,它們之間的關系是壹種“與”關系,或者是“has a”關系。
(3)對象
對象是人們要進行研究的任何事物,從最簡單的整數到復雜的飛機等均可看作對象,它不僅能表示具體的事物,還能表示抽象的規則、計劃或事件。
(4)對象的狀態和行為
對象具有狀態,壹個對象用數據值來描述它的狀態。
對象還有操作,用於改變對象的狀態,對象及其操作就是對象的行為。
對象實現了數據和操作的結合,使數據和操作封裝於對象的統壹體中
(5)消息和方法
對象之間進行通信的結構叫做消息。在對象的操作中,當壹個消息發送給某個對象時,消息包含接收對象去執行某種操作的信息。發送壹條消息至少要包括說明接受消息的對象名、發送給該對象的消息名(即對象名、方法名)。壹般還要對參數加以說明,參數可以是認識該消息的對象所知道的變量名,或者是所有對象都知道的全局變量名。
特征
(1)對象唯壹性
每個對象都有自身唯壹的標識,通過這種標識,可找到相應的對象。在對象的整個生命期中,它的標識都不改變,不同的對象不能有相同的標識。
(2)分類性
分類性是指將具有壹致的數據結構(屬性)和行為(操作)的對象抽象成類。壹個類就是這樣壹種抽象,它反映了與應用有關的重要性質,而忽略其他壹些無關內容。任何類的劃分都是主觀的,但必須與具體的應用有關。
(3)繼承性
繼承性是子類自動***享父類數據結構和方法的機制,這是類之間的壹種關系。在定義和實現壹個類的時候,可以在壹個已經存在的類的基礎之上來進行,把這個已經存在的類所定義的內容作為自己的內容,並加入若幹新的內容。
繼承性是面向對象程序設計語言不同於其它語言的最重要的特點,是其他語言所沒有的。
在類層次中,子類只繼承壹個父類的數據結構和方法,則稱為單重繼承。
在類層次中,子類繼承了多個父類的數據結構和方法,則稱為多重繼承。
在軟件開發中,類的繼承性使所建立的軟件具有開放性、可擴充性,這是信息組織與分類的行之有效的方法,它簡化了對象、類的創建工作量,增加了代碼的可重性。
采用繼承性,提供了類的規範的等級結構。通過類的繼承關系,使公***的特性能夠***享,提高了軟件的重用性。
(4)多態性(多形性)
多態性是指相同的操作或函數、過程可作用於多種類型的對象上並獲得不同的結果。不同的對象,收到同壹消息可以產生不同的結果,這種現象稱為多態性。
多態性允許每個對象以適合自身的方式去響應***同的消息。
多態性增強了軟件的靈活性和重用性。
要素
(1)抽象
抽象是指強調實體的本質、內在的屬性。在系統開發中,抽象指的是在決定如何實現對象之前的對象的意義和行為。使用抽象可以盡可能避免過早考慮壹些細節。
類實現了對象的數據(即狀態)和行為的抽象。
(2)封裝性(信息隱藏)
封裝性是保證軟件部件具有優良的模塊性的基礎。
面向對象的類是封裝良好的模塊,類定義將其說明(用戶可見的外部接口)與實現(用戶不可見的內部實現)顯式地分開,其內部實現按其具體定義的作用域提供保護。
對象是封裝的最基本單位。封裝防止了程序相互依賴性而帶來的變動影響。面向對象的封裝比傳統語言的封裝更為清晰、更為有力。
(3)***享性
面向對象技術在不同級別上促進了***享:
①同壹類中的***享
同壹類中的對象有著相同數據結構。這些對象之間是結構、行為特征的***享關系。
②在同壹應用中***享
在同壹應用的類層次結構中,存在繼承關系的各相似子類中,存在數據結構和行為的繼承,使各相似子類***享***同的結構和行為。使用繼承來實現代碼的***享,這也是面向對象的主要優點之壹。
③在不同應用中***享
面向對象不僅允許在同壹應用中***享信息,而且為未來目標的可重用設計準備了條件。通過類庫這種機制和結構來實現不同應用中的信息***享。
(4).強調對象結構而不是程序結構
開發方法
面向對象開發方法的研究已日趨成熟,國際上已有不少面向對象產品出現。面向對象開發方法有Coad方法、Booch方法和OMT方法等。
(1)Booch方法
Booch最先描述了面向對象的軟件開發方法的基礎問題,指出面向對象開發是壹種根本不同於傳統的功能分解的設計方法。面向對象的軟件分解更接近人對客觀事務的理解,而功能分解只通過問題空間的轉換來獲得。
(2)Coad方法
Coad方法是1989年Coad和Yourdon提出的面向對象開發方法。該方法的主要優點是通過多年來大系統開發的經驗與面向對象概念的有機結合,在對象、結構、屬性和操作的認定方面,提出了壹套系統的原則。該方法完成了從需求角度進壹步進行類和類層次結構的認定。盡管Coad方法沒有引入類和類層次結構的術語,但事實上已經在分類結構、屬性、