自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳細(xì)介紹什么是面向?qū)ο?/h1>

開發(fā) 開發(fā)工具
本文詳細(xì)介紹的是面向?qū)ο蟮乃枷?,主要從基本概念,面向?qū)ο蟮奶卣?,面向?qū)ο蟮囊匾约懊嫦驅(qū)ο蟮哪P蛶追矫鏋榇蠹医榻B的。希望對(duì)你有幫助,一起來看。

面向?qū)ο?/strong>(Object Oriented,簡(jiǎn)稱OO)是當(dāng)前計(jì)算機(jī)界關(guān)心的重點(diǎn),它是90年代軟件開發(fā)方法的主流。面向?qū)ο蟮母拍詈蛻?yīng)用已超越了程序設(shè)計(jì)和軟件開發(fā),擴(kuò)展到很寬的范圍。如數(shù)據(jù)庫(kù)系統(tǒng)、交互式界面、應(yīng)用結(jié)構(gòu)、應(yīng)用平臺(tái)、分布式系統(tǒng)、網(wǎng)絡(luò)管理結(jié)構(gòu)、CAD技術(shù)、人工智能等領(lǐng)域。

表面來看,面向?qū)ο筮@個(gè)術(shù)語(yǔ)的意思是,把軟件組織成一系列離散的,合并了數(shù)據(jù)結(jié)構(gòu)和行為的對(duì)象。這與以前軟件開發(fā)方法中數(shù)據(jù)結(jié)構(gòu)和行為只是松散關(guān)聯(lián)是不同的。關(guān)于OO方法確切需要哪些特征學(xué)術(shù)界是有爭(zhēng)議的,但大致上它們都包含四個(gè)方面:標(biāo)識(shí)(identity),分類(classification) ,繼承(inheritance),多態(tài)(polymorphism)。

標(biāo)識(shí):數(shù)據(jù)被量化成稱為對(duì)象的離散的,可辨別的實(shí)體。每個(gè)對(duì)象都有它自己的內(nèi)部標(biāo)識(shí)。換言之,即使所有的屬性都相同,兩個(gè)對(duì)象也是有差別的。

分類:擁有相同數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對(duì)象被分組成為一個(gè)類。

繼承:多個(gè)類基于一種分層關(guān)系,共享類間的屬性和操作(合稱為特征)。

多態(tài):對(duì)于不同的類來說相同的操作會(huì)有不同的動(dòng)作。

面向?qū)ο蟮幕靖拍睿?/strong>

(1)對(duì)象。

對(duì)象是人們要進(jìn)行研究的任何事物,從最簡(jiǎn)單的整數(shù)到復(fù)雜的飛機(jī)等均可看作對(duì)象,它不僅能表示具體的事物,還能表示抽象的規(guī)則、計(jì)劃或事件。

(2)對(duì)象的狀態(tài)和行為。

對(duì)象具有狀態(tài),一個(gè)對(duì)象用數(shù)據(jù)值來描述它的狀態(tài)。

對(duì)象還有操作,用于改變對(duì)象的狀態(tài),對(duì)象及其操作就是對(duì)象的行為。

對(duì)象實(shí)現(xiàn)了數(shù)據(jù)和操作的結(jié)合,使數(shù)據(jù)和操作封裝于對(duì)象的統(tǒng)一體中

(3)類。

具有相同或相似性質(zhì)的對(duì)象的抽象就是類。因此,對(duì)象的抽象是類,類的具體化就是對(duì)象,也可以說類的實(shí)例是對(duì)象。

類具有屬性,它是對(duì)象的狀態(tài)的抽象,用數(shù)據(jù)結(jié)構(gòu)來描述類的屬性。

類具有操作,它是對(duì)象的行為的抽象,用操作名和實(shí)現(xiàn)該操作的方法來描述。

(4)類的結(jié)構(gòu)。

在客觀世界中有若干類,這些類之間有一定的結(jié)構(gòu)關(guān)系。通常有兩種主要的結(jié)構(gòu)關(guān)系,即一般--具體結(jié)構(gòu)關(guān)系,整體--部分結(jié)構(gòu)關(guān)系。

①一般——具體結(jié)構(gòu)稱為分類結(jié)構(gòu),也可以說是“或”關(guān)系,或者是“is a”關(guān)系。

②整體——部分結(jié)構(gòu)稱為組裝結(jié)構(gòu),它們之間的關(guān)系是一種“與”關(guān)系,或者是“has a”關(guān)系。

(5)消息和方法。

對(duì)象之間進(jìn)行通信的結(jié)構(gòu)叫做消息。在對(duì)象的操作中,當(dāng)一個(gè)消息發(fā)送給某個(gè)對(duì)象時(shí),消息包含接收對(duì)象去執(zhí)行某種操作的信息。發(fā)送一條消息至少要包括說明接受消息的對(duì)象名、發(fā)送給該對(duì)象的消息名(即對(duì)象名、方法名)。一般還要對(duì)參數(shù)加以說明,參數(shù)可以是認(rèn)識(shí)該消息的對(duì)象所知道的變量名,或者是所有對(duì)象都知道的全局變量名。

面向?qū)ο蟮奶卣鳎?/strong>

(1)對(duì)象唯一性。

每個(gè)對(duì)象都有自身唯一的標(biāo)識(shí),通過這種標(biāo)識(shí),可找到相應(yīng)的對(duì)象。在對(duì)象的整個(gè)生命期中,它的標(biāo)識(shí)都不改變,不同的對(duì)象不能有相同的標(biāo)識(shí)。

(2)分類性。

分類性是指將具有一致的數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對(duì)象抽象成類。一個(gè)類就是這樣一種抽象,它反映了與應(yīng)用有關(guān)的重要性質(zhì),而忽略其他一些無關(guān)內(nèi)容。任何類的劃分都是主觀的,但必須與具體的應(yīng)用有關(guān)。

(3)繼承性。

繼承性是子類自動(dòng)共享父類數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制,這是類之間的一種關(guān)系。在定義和實(shí)現(xiàn)一個(gè)類的時(shí)候,可以在一個(gè)已經(jīng)存在的類的基礎(chǔ)之上來進(jìn)行,把這個(gè)已經(jīng)存在的類所定義的內(nèi)容作為自己的內(nèi)容,并加入若干新的內(nèi)容。

繼承性是面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言不同于其它語(yǔ)言的最重要的特點(diǎn),是其他語(yǔ)言所沒有的。

在類層次中,子類只繼承一個(gè)父類的數(shù)據(jù)結(jié)構(gòu)和方法,則稱為單重繼承。

在類層次中,子類繼承了多個(gè)父類的數(shù)據(jù)結(jié)構(gòu)和方法,則稱為多重繼承。

在軟件開發(fā)中,類的繼承性使所建立的軟件具有開放性、可擴(kuò)充性,這是信息組織與分類的行之有效的方法,它簡(jiǎn)化了對(duì)象、類的創(chuàng)建工作量,增加了代碼的可重性。

采用繼承性,提供了類的規(guī)范的等級(jí)結(jié)構(gòu)。通過類的繼承關(guān)系,使公共的特性能夠共享,提高了軟件的重用性。

(4)多態(tài)性(多形性)

多態(tài)性使指相同的操作或函數(shù)、過程可作用于多種類型的對(duì)象上并獲得不同的結(jié)果。不同的對(duì)象,收到同一消息可以產(chǎn)生不同的結(jié)果,這種現(xiàn)象稱為多態(tài)性。

多態(tài)性允許每個(gè)對(duì)象以適合自身的方式去響應(yīng)共同的消息。

多態(tài)性增強(qiáng)了軟件的靈活性和重用性。

面向?qū)ο蟮囊兀?/strong>

(1)抽象。

抽象是指強(qiáng)調(diào)實(shí)體的本質(zhì)、內(nèi)在的屬性。在系統(tǒng)開發(fā)中,抽象指的是在決定如何實(shí)現(xiàn)對(duì)象之前的對(duì)象的意義和行為。使用抽象可以盡可能避免過早考慮一些細(xì)節(jié)。

類實(shí)現(xiàn)了對(duì)象的數(shù)據(jù)(即狀態(tài))和行為的抽象。

(2)封裝性(信息隱藏)。

封裝性是保證軟件部件具有優(yōu)良的模塊性的基礎(chǔ)。

面向?qū)ο蟮念愂欠庋b良好的模塊,類定義將其說明(用戶可見的外部接口)與實(shí)現(xiàn)(用戶不可見的內(nèi)部實(shí)現(xiàn))顯式地分開,其內(nèi)部實(shí)現(xiàn)按其具體定義的作用域提供保護(hù)。

對(duì)象是封裝的最基本單位。封裝防止了程序相互依賴性而帶來的變動(dòng)影響。面向?qū)ο蟮姆庋b比傳統(tǒng)語(yǔ)言的封裝更為清晰、更為有力。

(3)共享性

面向?qū)ο蠹夹g(shù)在不同級(jí)別上促進(jìn)了共享

同一類中的共享。同一類中的對(duì)象有著相同數(shù)據(jù)結(jié)構(gòu)。這些對(duì)象之間是結(jié)構(gòu)、行為特征的共享關(guān)系。

在同一應(yīng)用中共享。在同一應(yīng)用的類層次結(jié)構(gòu)中,存在繼承關(guān)系的各相似子類中,存在數(shù)據(jù)結(jié)構(gòu)和行為的繼承,使各相似子類共享共同的結(jié)構(gòu)和行為。使用繼承來實(shí)現(xiàn)代碼的共享,這也是面向?qū)ο蟮闹饕獌?yōu)點(diǎn)之一。

在不同應(yīng)用中共享。面向?qū)ο蟛粌H允許在同一應(yīng)用中共享信息,而且為未來目標(biāo)的可重用設(shè)計(jì)準(zhǔn)備了條件。通過類庫(kù)這種機(jī)制和結(jié)構(gòu)來實(shí)現(xiàn)不同應(yīng)用中的信息共享。

4.強(qiáng)調(diào)對(duì)象結(jié)構(gòu)而不是程序結(jié)構(gòu)

面向?qū)ο蟮拈_發(fā)方法:

目前,面向?qū)ο箝_發(fā)方法的研究已日趨成熟,國(guó)際上已有不少面向?qū)ο螽a(chǎn)品出現(xiàn)。面向?qū)ο箝_發(fā)方法有Coad方法、Booch方法和OMT方法等。

1.Booch方法

Booch***描述了面向?qū)ο蟮能浖_發(fā)方法的基礎(chǔ)問題,指出面向?qū)ο箝_發(fā)是一種根本不同于傳統(tǒng)的功能分解的設(shè)計(jì)方法。面向?qū)ο蟮能浖纸飧咏藢?duì)客觀事務(wù)的理解,而功能分解只通過問題空間的轉(zhuǎn)換來獲得。

2.Coad方法

Coad方法是1989年Coad和Yourdon提出的面向?qū)ο箝_發(fā)方法。該方法的主要優(yōu)點(diǎn)是通過多年來大系統(tǒng)開發(fā)的經(jīng)驗(yàn)與面向?qū)ο蟾拍畹挠袡C(jī)結(jié)合,在對(duì)象、結(jié)構(gòu)、屬性和操作的認(rèn)定方面,提出了一套系統(tǒng)的原則。該方法完成了從需求角度進(jìn)一步進(jìn)行類和類層次結(jié)構(gòu)的認(rèn)定。盡管Coad方法沒有引入類和類層次結(jié)構(gòu)的術(shù)語(yǔ),但事實(shí)上已經(jīng)在分類結(jié)構(gòu)、屬性、操作、消息關(guān)聯(lián)等概念中體現(xiàn)了類和類層次結(jié)構(gòu)的特征。

3.OMT方法

OMT方法是1991年由James Rumbaugh等5人提出來的,其經(jīng)典著作為“面向?qū)ο蟮慕Ec設(shè)計(jì)”。

該方法是一種新興的面向?qū)ο蟮拈_發(fā)方法,開發(fā)工作的基礎(chǔ)是對(duì)真實(shí)世界的對(duì)象建模,然后圍繞這些對(duì)象使用分析模型來進(jìn)行獨(dú)立于語(yǔ)言的設(shè)計(jì),面向?qū)ο蟮慕:驮O(shè)計(jì)促進(jìn)了對(duì)需求的理解,有利于開發(fā)得更清晰、更容易維護(hù)的軟件系統(tǒng)。該方法為大多數(shù)應(yīng)用領(lǐng)域的軟件開發(fā)提供了一種實(shí)際的、高效的保證,努力尋求一種問題求解的實(shí)際方法。

4.UML(Unified Modeling Language)語(yǔ)言

軟件工程領(lǐng)域在1995年~1997年取得了***的進(jìn)展,其成果超過軟件工程領(lǐng)域過去15年的成就總和,其中最重要的成果之一就是統(tǒng)一建模語(yǔ)言(UML)的出現(xiàn)。UML將是面向?qū)ο蠹夹g(shù)領(lǐng)域內(nèi)占主導(dǎo)地位的標(biāo)準(zhǔn)建模語(yǔ)言。

UML不僅統(tǒng)一了Booch方法、OMT方法、OOSE方法的表示方法,而且對(duì)其作了進(jìn)一步的發(fā)展,最終統(tǒng)一為大眾接受的標(biāo)準(zhǔn)建模語(yǔ)言。UML是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用的建模語(yǔ)言。它融入了軟件工程領(lǐng)域的新思想、新方法和新技術(shù)。它的作用域不限于支持面向?qū)ο蟮姆治雠c設(shè)計(jì),還支持從需求分析開始的軟件開發(fā)全過程。

面向?qū)ο蟮哪P停?/strong>

(1)對(duì)象模型

對(duì)象模型表示了靜態(tài)的、結(jié)構(gòu)化的系統(tǒng)數(shù)據(jù)性質(zhì),描述了系統(tǒng)的靜態(tài)結(jié)構(gòu),它是從客觀世界實(shí)體的對(duì)象關(guān)系角度來描述,表現(xiàn)了對(duì)象的相互關(guān)系。該模型主要關(guān)心系統(tǒng)中對(duì)象的結(jié)構(gòu)、屬性和操作,它是分析階段三個(gè)模型的核心,是其他兩個(gè)模型的框架。

(2)動(dòng)態(tài)模型

動(dòng)態(tài)模型是與時(shí)間和變化有關(guān)的系統(tǒng)性質(zhì)。該模型描述了系統(tǒng)的控制結(jié)構(gòu),它表示了瞬間的、行為化的系統(tǒng)控制

性質(zhì),它關(guān)心的是系統(tǒng)的控制,操作的執(zhí)行順序,它表示從對(duì)象的事件和狀態(tài)的角度出發(fā),表現(xiàn)了對(duì)象的相互行為。

該模型描述的系統(tǒng)屬性是觸發(fā)事件、事件序列、狀態(tài)、事件與狀態(tài)的組織。使用狀態(tài)圖作為描述工具。它涉及到事件、狀態(tài)、操作等重要概念。

(3)功能模型

功能模型描述了系統(tǒng)的所有計(jì)算。功能模型指出發(fā)生了什么,動(dòng)態(tài)模型確定什么時(shí)候發(fā)生,而對(duì)象模型確定發(fā)生的客體。功能模型表明一個(gè)計(jì)算如何從輸入值得到輸出值,它不考慮計(jì)算的次序。功能模型由多張數(shù)據(jù)流圖組成。數(shù)據(jù)流圖用來表示從源對(duì)象到目標(biāo)對(duì)象的數(shù)據(jù)值的流向,它不包含控制信息,控制信息在動(dòng)態(tài)模型中表示,同時(shí)數(shù)據(jù)流圖也不表示對(duì)象中值的組織,值的組織在對(duì)象模型中表示。

希望通過本文的介紹,能夠給你帶來幫助。

【編輯推薦】

  1. 面向?qū)ο筌浖y(cè)試技術(shù)研究
  2. JavaScript面向?qū)ο缶幊躺钊敕治?/span>
  3. Javascript面向?qū)ο缶幊蹋ㄒ唬?封裝
  4. C語(yǔ)言的面向?qū)ο笫街貥?gòu)
  5. C#面向?qū)ο蟪绦蛟O(shè)計(jì)與框架
責(zé)任編輯:于鐵 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-06-28 11:06:16

Scala

2023-01-10 09:38:09

面向對(duì)象系統(tǒng)

2009-10-13 17:03:55

VB.NET面向?qū)ο?/a>

2010-01-04 14:11:51

ADO.Records

2009-11-18 11:05:27

PHP串行化

2009-08-25 17:28:23

C#創(chuàng)建DataSet

2010-03-18 18:20:34

Java Socket

2010-03-18 14:46:18

Java SynDem

2009-08-14 16:01:22

C#面向?qū)ο?/a>

2011-07-13 16:14:51

DLL

2009-07-08 14:23:40

JVM是什么

2009-12-31 09:42:41

ADO對(duì)象模型

2021-12-24 10:21:57

Python函數(shù)開發(fā)

2020-07-23 17:29:47

接口編程代碼

2019-09-24 10:17:14

2009-12-22 09:43:20

ADO.NET對(duì)象

2009-11-11 09:11:19

2011-07-06 17:37:38

ASP

2011-07-06 17:25:20

2011-07-21 17:19:47

java面向?qū)ο?/a>
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)