日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

对象与函数

發(fā)布時間:2023/12/10 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对象与函数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

摘自《UML+OOPC嵌入式C語言開發(fā)精講》

11.3? 對象與函數(shù)

11.3.1 ?函數(shù)的角色

經(jīng)濟諾貝爾獎得主H.A.SimonH.A.Simon,計算機人工智能之父)在其1962年的文章《The Architecture of Complexity》中說道:“從小系統(tǒng)建造成龐大系統(tǒng)時,若有穩(wěn)定的中間模塊(Intermediate Module),則龐大的系統(tǒng)穩(wěn)定且發(fā)展快速。”在日常生活中,高樓大廈之所以能夠迅速建造起來,是因為使用了大量預(yù)制的中層模塊(如帷窗等)。這些中層模塊較平房常用的磚塊大一些。

在計算機軟件上,也適用同樣的觀念。程序的最小模塊是一個指令,如果一個程序含有10 000行指令,但未加分組或分類,這樣的程序?qū)⒑軓?fù)雜,難以駕馭。基于Simon的觀念,人們將程序分而治之(Devide and Conque),分為幾個中間模塊(Module),就是通稱的函數(shù)(Function)、程序(Procedure)、子程序(Subroutine)或段(Paragraph)。如圖11-2所示。

此時,軟件中的函數(shù)或子程序扮演著模塊的角色,使得人們能快速建造出龐大的軟件系統(tǒng)。函數(shù)如同磚塊,是建造一般房子的中層模塊。至于建造高樓大廈,則適宜采用更大的中層模塊。因此計算機軟件人員,必須將函數(shù)分門別類,并組成中上層的模塊——對象(Object)。

11-2

傳統(tǒng)程序直接由函數(shù)或子程序所組成,OOP軟件則將函數(shù)納入對象中,再由對象組成龐大程序。函數(shù)隸屬于對象,與對象中的數(shù)據(jù)密切聯(lián)系在一起。軟件的建造理念和高樓大廈的建造觀念是一致的。函數(shù)的角色為:

l? 從對象本身觀之,函數(shù)表達了對象的動態(tài)行為。

l? 從整個系統(tǒng)觀之,函數(shù)是支持中層模塊(即對象)的支架。

在“淚眼問花花不語,亂紅飛過秋千去”的例子中,女主角的行為有“流淚”(Cry)及“問”(Ask),花的行為有“語”(Say)和“飛”(Fly),秋千的行為有“擺蕩”(Swing)。以對象來組織這些函數(shù),如圖11-3所示。

11-3

Cry() Ask() 是“女主角”對象內(nèi)的函數(shù),Say() Fly() 是“花”對象內(nèi)的函數(shù),而Swing() 為“秋千”對象內(nèi)的函數(shù)。

11.3.2 ?對象與類

類是群體(或集合),而對象是類中的一份子。人們常用“是一個”(is a)來表達對象與類之間的關(guān)系。例如:

l? 月亮是一個星球。

l? 嫦娥是一位(個)美麗的神仙。

l? 畢加索是一個藝術(shù)家。

l? 畢加索是一個畫家。

l? 張大千是一個畫家。

l? 貝多芬是一個音樂家。

.....

所以“月球”是對象,屬于“星球”類的一份子。畢加索是對象,藝術(shù)家是類,同樣地,畫家也是類,其中畫家是藝術(shù)家群體中的小群體(部分集合)。畢加索和張大千同屬于“畫家”類,所以具有共同特點——精于美術(shù)繪畫。

11.3.3 ?類的用途:描述對象的共同特點

軟件中的對象為自然界對象的抽象表示,只表達了其重要特征與行為,而忽略了細節(jié)部分。至于哪些是重要特征和行為呢?程序中必須加以說明。同類的對象具有共同的重要特征與行為,因此可由類統(tǒng)一說明對象應(yīng)表達的那些特征和行為。也就是說,類統(tǒng)一說明了對象應(yīng)含哪些“數(shù)據(jù)”(Data)和哪些“函數(shù)”(Function)。例如:

??????? double a = 3.5 + 5;

??????? printf(a);

C語言已定義的doubleint等數(shù)據(jù)類型,其變量含有+-*/等基本運算(行為),凡double的變量皆能做這些運算。同理,如果我們創(chuàng)造了新的數(shù)據(jù)類型(即類)——花,且定義如下:

??????? CLASS()

??????? {

?????????? char name[10];

?????????? int color;

?????????? void fly();

?????????? void say();

??????? };

這就是花類的定義,它說明了,

花類內(nèi)的對象(即“花”數(shù)據(jù)類型的變量)皆具兩項共同特征:namecolor

l? 花類的對象皆具兩項共同行為:fly()say()

同類的對象特征和行為是一致的,所以只須在類定義中統(tǒng)一說明,不必對對象逐一說明。定義好以后,就能借花類來聲明對象了,此時也可以將類視為數(shù)據(jù)類型,則花類的對象就是花數(shù)據(jù)類型的變量了。花類如圖11-4所示。

11-4

更多樣章試讀請訪問:http://www.china-pub.com/209254

轉(zhuǎn)載于:https://www.cnblogs.com/bvbook/archive/2008/12/08/1350577.html

總結(jié)

以上是生活随笔為你收集整理的对象与函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。