freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

軟件技術基礎第三版課后習題答案(編輯修改稿)

2024-07-22 15:37 本頁面
 

【文章內(nèi)容簡介】 對象間的引用耦合,為并發(fā)程序、事件驅動程序提供了程序實現(xiàn)的技術基礎。 類與對象 對象是封裝了屬性和方法的實體,客觀世界的對象往往有許多相似之處,例如,一個班上40 個人,就學生而言他們的屬性和方法完全一樣,只是姓名、年齡不一樣,交作業(yè)的內(nèi)容不一樣。沿用程序中表達數(shù)據(jù)的抽象辦法:定義一個類型、聲明該類型的變量,定義一類對象然后聲明它的不同實例(Instance): Dim v As Double //v是雙精型的數(shù)據(jù)變量Dim OK As CommandButton //OK 是按鈕類的對象變量這個類CommandButton是系統(tǒng)事先定義好的,OK是它的實例對象。OK 有著和CommandButton一樣的屬性和方法,只是要給出各屬性的值。類是生成實例的樣板,是實例加工廠(給出一組屬性值就是一實例)。正是因為變量一類型和實例一類的相似性,許多語言(如C++)都把類看作是類型,類的定義如同以簡單的類型構造復雜的數(shù)據(jù)類型一樣,只不過類定義時還要定義類的方法。類方法可以只寫型構.方法體可以在類之外定義,以下是C++的字符堆棧類: 。C++的main() 函數(shù)相當于實例對象,Java已將它改成主程序對象的方法(外面套上對象名)。當聲明: Char_stack stk1(100)。 消息和方法消息(message)相當于過程語言的過程調(diào)用,可帶實在參數(shù):方法(method ) 則相當于過程定義,帶參數(shù)也是形式參數(shù),一定要有方法體(執(zhí)行語句集).面向對象中只有消息一方法,沒有過程調(diào)用一過程體的說法。方法體中又可以向其他對象發(fā)消息,類似于本例的main 向char_stack 、stkl 、stk2 發(fā)消息。這樣一個應用程序就是多個對象之間發(fā)消息。類對象接受生成、撤消實例對象的消息,這些方法叫類方法。相應用到的變量叫類變量。類定義中的其他方法和數(shù)據(jù)變量叫實例方法和實例變量。實例變量如上所述,每生成一個實例對象就要復制一份。實例方法只有一份,所以面向對象程序運行前要先裝入類。類與類型類是由簡單類型組成的復雜類型,和用戶定義的復雜類型即學術上叫抽象數(shù)據(jù)類型(ADT)有相似之處: 類型名封裝數(shù)據(jù)和操作 數(shù)據(jù)由若干基本類型或已實現(xiàn)的復雜類型定義的變量組成 操作是加工這些數(shù)據(jù)的子例程和函數(shù) 有外部可見性控制public (公有)、Private (私有)和類型不同之處: 類型定義實例變量參與程序運行,類型僅是對變量的計算性態(tài)的描述.不參與運行。類也是程序對象參與程序運行。 子類型是類型的真子集,不是操作減少就是數(shù)據(jù)取值范圍縮小,子類是類的例化.它增加數(shù)據(jù)和操作,使對象更明確。從復雜數(shù)據(jù)類型到類是一個飛躍,雖然底層的計算仍然是基本數(shù)據(jù)類型和子例程,但換了個說法,把類型數(shù)據(jù)叫屬性集,子例程叫方法,過程調(diào)用叫發(fā)消息,就便面向對象程序和過程大不相同。過程式程序的執(zhí)行順序,盡管是并發(fā)程序,都是設計者事先考慮好了的執(zhí)行過程。面向對象程序由于對象相對獨立可以支持事件驅動程序。一個窗口上有按鈕、菜單、圖標、圖符,用戶可以任意點擊一個都能運行,其先后沒有約定,用過程式語言就要編一個輪循響應程序,依次問用戶點擊了誰,如果增加了按鈕或刪除某個圖符,輪循程序就要改,否則無法運行。面向對象程序天然支持這類應用其示意圖如圖2 . 19所示:對象A 、B 、C 都是獨立的,聯(lián)線是表示運行時發(fā)消息的路徑,不運行是沒有的??招募^是觸發(fā)的消息(例如鼠標點擊),圖示給出兩個,誰先誰后都沒有關系,增加或減少一個對象或方法,只對用到它的對象稍作修改,不需要更改總控程序。面向對象編程,主要學會定義類。VB 的所謂面向對象編程是不徹底的,它的控件都是對象,但其類定義由系統(tǒng)做,用戶只能在它提供的屬性和方法的前提下.生成并使用實例對象,用戶全無類定義概念。 回到面向對象語言的大家庭,才提供類定義機制,所以本節(jié)只能用C++舉例。類定義以類名封裝類成員,其中分數(shù)據(jù)成員和方法成員。只有指明它們是公有的(Public ) ,其他類的對象才可以訪問,私有(P rivate )成員類內(nèi)成員均可訪問。數(shù)據(jù)和操作全部公有失去封裝和數(shù)據(jù)隱藏的意義.全部私有只是一個孤立的對象,也失去對象通信模擬客觀世界對象的意義.所以,一般是數(shù)據(jù)成員全部私有,方法成員多半公有、少量私有。私有方法只接受公有方法的消息,間接為類外對象服務. 類的例子就是很好的類定義,該定義中沒有私有方法。構造子和析構子 類是對象的制造廠,生成的實例對象在運行前必須初始化,這個工作如果在定義數(shù)據(jù)成員時都加上初始化屬性值,生成的對象雷同,就沒有必要定義類了。所以每個類都定義一個構造實例的方法叫構造子(++譯為構造函數(shù),因為它的操作只有函數(shù)),用戶設定不同的參數(shù),就可以構造出不同的實例, ( )中stkl 是可裝100 個字符的堆棧,stk2可裝20 個字符的堆棧。構造子一般與類同名,在聲明實例對象時也就等于在給類對象發(fā)消息。同名的構造子可以定義多個,這樣,構造實例的方法多樣編程就很方便。比如,可以定義一個不填參數(shù)的方法(無參),當用戶不關心堆棧大小時,無參方法就是缺省的,由系統(tǒng)給定10 個或其他數(shù)目。再如,若根據(jù)程序運行情況動態(tài)地生成實例時,其構造子也不同。 方法的名字相同,所帶參數(shù)不同,即方法體不同,這叫重載(overloading ) , 即一個名字代表了好幾個方法。編譯或運行時根據(jù)參數(shù)的類型、個數(shù)、次序匹配。析構子(destructor)和構造子相反,當程序不再需要該實例對象時,及時撤銷以釋放它所占據(jù)的空間。析構子的定義是在類名前加‘ ~ ’號,不帶參數(shù),在main()中寫以下語句:stk2.~char_stack()。 則撤銷stk2 對象。 接口類有什么用呢?用處很大!因為同一接口類可以由不同的類實現(xiàn),而應用程序關心的是接口提供的行為而不關心實現(xiàn)的細節(jié)。例如字符堆棧,一個類用數(shù)組作棧體,一個類用鏈表,都可以實現(xiàn)堆棧操作,具有極大的靈活性。更有甚者.在網(wǎng)絡互操作之中,一個站點是32 位字長的機器,一個是64 位的,都有類來構成這個接口類。通過遠程調(diào)用(RPC 或RMI )都可以實現(xiàn)應用程序要求的接口型構提供的功能。接口類還有利于解決多繼承帶來的混亂,見下小節(jié)。類定義中還有一個重要的內(nèi)容是定義誰是它的父類,見下小節(jié)。 類繼承類的封裝保證了程序的模塊獨立性,這樣,調(diào)試程序比較方便。但封裝也帶來問題,相同的數(shù)據(jù)、相同的操作,每個類封裝一套(例如四則運算、兩數(shù)比較、Hash 索引等)那就太繁雜了,繼承能解決這個問題。每個類都可以派生許多子類,子類繼承父類的屬性和方法。子類又可以派生它的子類… … 老祖宗的屬性和方法可以一代一代傳到最新派生的(子)類.把最“老”的類叫object ,把一般四則運算、兩數(shù)比較等大家都用得到的屬性和方法定義在其中,以后派生類就不用寫了,只定義派生類“自己的”屬性和方法.構成樹狀的繼承體系,:類C122 中的屬性集是:Atrl22 , { AO , Al . A12 , A122 } 方法集是:Mtd 122 =弓MO . Ml , M12 , M122 }把這個類繼承體系做成類庫,顯然,每次作程序設計時首先瀏覽類庫,查看有沒有和要設計的類相近的類:如果全是新設計,沒有相近的類,那么就寫出本類的全部定義。此時隱含它是掛在Object 類之下,它繼承了Object 中一般四則運算,數(shù)、串比較等系統(tǒng)定義的方法和屬性 如果要設計的類與類庫中某個類的定義相近,例如C122 ,就從它派生:Class CI22I : [public] C22 { Atrl22l //只定義自己增加的網(wǎng)性集//隱含繼承了 ( AO . AI . A12 , A122 )屬性集public : Mtd122l // 只定義自己的方法集//隱含繼承T 長Mo . Ml . M12 , Mi22 )方法集}顯然.在定義自己的屬性和方法時名字和原有類庫中類的屬性和方法名字重復了,就產(chǎn)生了覆蓋(override ) ,例如C1 中有print(),C1221 中也有print ( ) , 那么,本類的實例就不繼承被覆蓋的屬性和方法了,只按自己定義的屬性和方法執(zhí)行.如果瀏覽類庫查出了某個類正好是自己要設計的類,例如Cn22 ,那么只要按它的構造函數(shù)在使用它的實例的地方聲明實例(填上參數(shù))就可以了。隨著使用日久.類庫中派生出各種各樣的類,如果使用良好就將它定制( Cust
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1