欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      面向?qū)ο蠹夹g(shù)引論(復(fù)習(xí)題帶術(shù)語(yǔ)題答案)

      時(shí)間:2019-05-12 11:56:49下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《面向?qū)ο蠹夹g(shù)引論(復(fù)習(xí)題帶術(shù)語(yǔ)題答案)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《面向?qū)ο蠹夹g(shù)引論(復(fù)習(xí)題帶術(shù)語(yǔ)題答案)》。

      第一篇:面向?qū)ο蠹夹g(shù)引論(復(fù)習(xí)題帶術(shù)語(yǔ)題答案)

      一、概念與術(shù)語(yǔ)

      1.對(duì)象:(1)從現(xiàn)實(shí)世界:?jiǎn)栴}的概念和抽象的或具有明確邊界和意義的事物

      (2)從數(shù)據(jù)世界:一組數(shù)據(jù)以施加在這組數(shù)據(jù)上的一組操作

      (3)從系統(tǒng)觀點(diǎn):對(duì)象是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位,一個(gè)對(duì)象是由一組屬性和對(duì)整個(gè)屬性進(jìn)行操作的一組服務(wù)構(gòu)成的。(P19)

      2.持久對(duì)象:生存期可以超越程序的執(zhí)行時(shí)間而長(zhǎng)期存在的對(duì)象。(P24)

      2.主動(dòng)對(duì)象(3種解釋?zhuān)海?)一個(gè)能夠啟動(dòng)消息傳遞的對(duì)象。(2)一個(gè)能為其他對(duì)象提供服務(wù)的對(duì)象,能被拷貝成代理,并且需要并發(fā)控制。(3)其方法(操作)由自身狀態(tài)的改變而激活。(P25)

      3.被動(dòng)對(duì)象:其內(nèi)部的操作需要通過(guò)外部消息驅(qū)動(dòng)才能執(zhí)行的對(duì)象。(P25)

      4.類(lèi):一組具有相同性質(zhì)(屬性和操作)的對(duì)象的抽象。(P20)

      5.主動(dòng)類(lèi):主動(dòng)類(lèi)的對(duì)象至少擁有一個(gè)進(jìn)程或線(xiàn)程,因此它能夠自主執(zhí)行(P65)

      6.接口:描述一個(gè)類(lèi)或構(gòu)件的一個(gè)服務(wù)的操作集(P64)

      7.用況:用況是對(duì)業(yè)務(wù)過(guò)程所包含的一組動(dòng)作序列的描述,系統(tǒng)執(zhí)行這些動(dòng)作將產(chǎn)生一個(gè)對(duì)特定的參與者有價(jià)值且可觀察的結(jié)果。(P42)

      8.協(xié)作:協(xié)作定義了一個(gè)交互,它是由一組共同工作以提供某協(xié)作行為的角色和其他元素構(gòu)成的一個(gè)群體,這些協(xié)作行為大于所有元素的各自行為的綜合(P64)

      9.構(gòu)件:構(gòu)件是系統(tǒng)中物理的、可替代的部件,它遵循且提供一組接口的實(shí)現(xiàn)。(P65)

      10.節(jié)點(diǎn):節(jié)點(diǎn)也是物理的,是在系統(tǒng)運(yùn)行時(shí)存在的物理元素,它表示了一種可計(jì)算的資源,通常至少有一些記憶能力和處理能力。(P65)

      11.一般類(lèi)和12.特殊類(lèi):如果類(lèi)A具有類(lèi)B的全部屬性和服務(wù)(操作),而且具有自己特有的某些屬性和服務(wù),則類(lèi)A叫做類(lèi)B的特殊類(lèi),B叫做A的一般類(lèi)。(P22)

      13.關(guān)聯(lián)(關(guān)系):事物(類(lèi))之間的一種結(jié)構(gòu)關(guān)系,或者說(shuō)是對(duì)象之間連接的抽象,用來(lái)描述對(duì)象之間的相互作用(P67)

      14.關(guān)聯(lián)類(lèi):關(guān)聯(lián)類(lèi)是一種具有關(guān)聯(lián)特性和類(lèi)特性的建模元素,可以將其看出是具有類(lèi)特性的關(guān)聯(lián),或者具有管理特征的類(lèi)(P116)

      15.依賴(lài)(關(guān)系):依賴(lài)是兩個(gè)事物之間的一種語(yǔ)義關(guān)系,其中的一個(gè)事物的改變會(huì)影響另一個(gè)事物,反之未必(P106)

      16.泛化(關(guān)系):泛化是一種“特殊/一般”關(guān)系,即特殊事物和一般事物之間的關(guān)系。(P108)

      17.實(shí)現(xiàn)(關(guān)系):類(lèi)元之間的語(yǔ)義關(guān)系(P16)

      18.鏈和鏈屬性:對(duì)象之間的關(guān)聯(lián)或相互作用表現(xiàn)出不同的類(lèi)的對(duì)象的實(shí)例之間的實(shí)際的或概念上的聯(lián)系,稱(chēng)為鏈。鏈屬性:??(P110)

      19.聚合:聚合用來(lái)表示事物時(shí)間的“整體/部分”關(guān)系,“整體”事物是一個(gè)較大的事物,它是由多個(gè)”部分“事物組成的。(P113-114)

      20.問(wèn)題域:是指特定應(yīng)用系統(tǒng)的應(yīng)用領(lǐng)域,即在現(xiàn)實(shí)世界中由該系統(tǒng)進(jìn)行處理的業(yè)務(wù)范圍。(P47)

      21.系統(tǒng)責(zé)任:指系統(tǒng)應(yīng)該具備的職能。(P47)

      22.消息:消息定義為向?qū)ο蟀l(fā)出的服務(wù)請(qǐng)求(P23和P127)

      23.交互:交互是發(fā)生在對(duì)象之間后對(duì)象內(nèi)部的消息傳遞行為(P66)

      24.事件:一個(gè)觸發(fā)行為成為一個(gè)事件,換句話(huà)說(shuō),所謂事件是指特定時(shí)刻內(nèi)發(fā)生的動(dòng)作。(P139)

      25.事件流:(P84)

      26.狀態(tài):指在對(duì)象的生命期中的一個(gè)條件或狀況(通過(guò)屬性值體現(xiàn)),在此期間,對(duì)象將滿(mǎn)足某些條件、執(zhí)行某些活動(dòng)或等待某些事件。(p141)

      27.狀態(tài)機(jī):狀態(tài)機(jī)描述了一個(gè)對(duì)象或一個(gè)交互在生命期內(nèi)響應(yīng)事件所經(jīng)歷的狀態(tài)序列,即描述其狀態(tài)變遷。(P66)

      28.封裝:封裝是對(duì)擁有結(jié)構(gòu)和行為的一個(gè)對(duì)象的元素進(jìn)行劃分的過(guò)程,封裝完成抽象的契約接口和對(duì)象實(shí)施的分離(P28)

      29.繼承:特殊類(lèi)擁有一般類(lèi)的全部屬性和服務(wù)(操作),稱(chēng)為特殊類(lèi)對(duì)一般類(lèi)的繼承(P29)多態(tài):在一般類(lèi)中定義的屬性被特殊類(lèi)繼承之后,可以具有不同的數(shù)據(jù)類(lèi)型;同理,一般類(lèi)中定義的操作,可以在特殊類(lèi)中具有不同的實(shí)現(xiàn)方法。(P31)

      31.抽象:抽象即指通過(guò)思考進(jìn)行分離的行為。另一種解釋?zhuān)罕硎灸呈挛锏谋举|(zhì)特征(P27)

      32.角色:當(dāng)一個(gè)類(lèi)位于關(guān)聯(lián)的某一端時(shí),該類(lèi)(的某些實(shí)例)就在這個(gè)關(guān)系中扮演了特定的角色。(這個(gè)算??)(P111)

      33.限定詞(修飾關(guān)聯(lián)):限定詞是關(guān)聯(lián)的一個(gè)特定的屬性,它的值劃分了一個(gè)關(guān)聯(lián)與一個(gè)對(duì)象相關(guān)的對(duì)象集。(p116)

      34.UML的規(guī)則(命名、范圍、可見(jiàn)性、完整性、執(zhí)行):P70-P71太多了~不想打~

      35.UML的公共機(jī)制(詳述、修飾、通用劃分、擴(kuò)展機(jī)制(構(gòu)造型、標(biāo)記值、約束))

      36.OOPL:面向?qū)ο蟮木幊陶Z(yǔ)言,OOD:面向?qū)ο笤O(shè)計(jì)范式,OOA:面向?qū)ο蠓治龇椒?/p>

      37.準(zhǔn)則包括標(biāo)準(zhǔn)與原則,模塊化設(shè)計(jì)的標(biāo)準(zhǔn)包括:可分解性、組合性、可理解性、連續(xù)性、保護(hù)性;設(shè)計(jì)上應(yīng)遵循的原則為:語(yǔ)言模塊單元、接口很少、小接口、顯示接口、信息隱蔽等。

      38.面向?qū)ο蟮乃膫€(gè)基本要素:面向?qū)ο笙到y(tǒng)是由對(duì)象組成的、組成系統(tǒng)的對(duì)象抽象成類(lèi)、類(lèi)之間存在泛化關(guān)系,此種關(guān)系支持繼承、對(duì)象之間通過(guò)消息獲取對(duì)方的服務(wù)。

      39.應(yīng)用開(kāi)發(fā)過(guò)程六個(gè)階段:需求描述、分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、維護(hù)。

      40.UML對(duì)軟件密集型系統(tǒng)的制品進(jìn)行下述工作:可視化、詳述、構(gòu)造、文檔化。41.UML三大建模元素:事物、關(guān)系、圖,事物分為:角色、實(shí)現(xiàn)結(jié)構(gòu)。結(jié)構(gòu)事物、行為事物、分組事物、注釋事物,結(jié)構(gòu)事10.簡(jiǎn)述描述類(lèi)的基本特征(名稱(chēng)、屬性等)并舉例物分為:類(lèi)、接口、協(xié)作、用況、主動(dòng)類(lèi)、構(gòu)件、節(jié)說(shuō)明之。點(diǎn)。名稱(chēng):一個(gè)字符串;屬性:已被命名的類(lèi)的42.提交一個(gè)應(yīng)用系統(tǒng)的過(guò)程包括:計(jì)劃和細(xì)化、構(gòu)造、特性;操作:一個(gè)服務(wù)的實(shí)現(xiàn),該服務(wù)可以由類(lèi)的任實(shí)施。何對(duì)象,甚至其他類(lèi)的對(duì)象所請(qǐng)求,以影響其行為; 職責(zé):類(lèi)的契約或責(zé)任。

      二、思考題 11.為什么“繼承”可以簡(jiǎn)化對(duì)問(wèn)題的認(rèn)識(shí)? 這是因?yàn)樵诜治鰡?wèn)題時(shí),運(yùn)用繼承手段至少1.為什么應(yīng)用對(duì)象技術(shù)可以改變軟件制造(生產(chǎn))可以從數(shù)量上減少必須理解和分析的不同情況。方式? 由人工集約方式改變成資源集約方式,由重復(fù)性12.列舉引起需求變化的主要因素,面向?qū)ο蠓椒ㄈ绾螒?yīng)對(duì)需求的不斷變化? 的編程勞動(dòng)變成基于組件的系統(tǒng)組裝,從而帶來(lái)軟件生產(chǎn)問(wèn)題域本身在系統(tǒng)開(kāi)發(fā)過(guò)程中發(fā)生變化、用戶(hù)因效率的大幅度提高。素、競(jìng)爭(zhēng)因素、經(jīng)費(fèi)因素、技術(shù)支持。2.試述建模的重要性,為什么建??梢越档拖到y(tǒng)實(shí)凍結(jié)需求法、以系統(tǒng)中最穩(wěn)定的部分作為系統(tǒng)的基本單位現(xiàn)的復(fù)雜度。(對(duì)象)。建模是開(kāi)發(fā)優(yōu)秀軟件所有活動(dòng)的核心部分,其目的是把所要設(shè)計(jì)的結(jié)構(gòu)和系統(tǒng)的行為溝通起來(lái),并對(duì)系統(tǒng)13.簡(jiǎn)述軟件維護(hù)的主要工作,并說(shuō)明其重要性。主要工作:對(duì)系統(tǒng)潛在的錯(cuò)誤進(jìn)行檢測(cè)和改的體系結(jié)構(gòu)進(jìn)行可視化和控制。建模是為了更好的理解正正;不斷地面對(duì)用戶(hù)的新要求以及為適應(yīng)新環(huán)境對(duì)系在構(gòu)造的系統(tǒng),并經(jīng)常提供簡(jiǎn)化和復(fù)用的機(jī)會(huì)。建模還可統(tǒng)進(jìn)行改進(jìn)與增強(qiáng)。以管理風(fēng)險(xiǎn)。一個(gè)成功的軟件組織有很多成功的因素,其中共同的一點(diǎn)就是對(duì)建模的采用。模型可以提高系統(tǒng)的可測(cè)試性。提高可交流性。增強(qiáng)開(kāi)發(fā)過(guò)程的可視性,使得分析和設(shè)計(jì)思路、設(shè)計(jì)過(guò)程可視化。降低實(shí)現(xiàn)的復(fù)雜度。通過(guò)將復(fù)雜系統(tǒng)的重要部分分解成一次能理解與處理的多個(gè)子部分,可以降低實(shí)現(xiàn)的復(fù)雜性。人對(duì)復(fù)雜問(wèn)題的理解能力是有限的,通過(guò)建模,縮小所研究問(wèn)題的范圍,一次只著重研究它的一個(gè)方面,這就是所謂的“分而治之”“各個(gè)擊破”。3.為什么面向?qū)ο蠓椒茌^好地管理復(fù)雜性并增強(qiáng)伸縮性。管理復(fù)雜性的一個(gè)好辦法就是“分而治之”?!胺帧本褪菍?duì)應(yīng)用領(lǐng)域的分解,面向?qū)ο蠓椒◤?qiáng)調(diào)以客觀世界的事物為基礎(chǔ),把某一領(lǐng)域分割成各種對(duì)象,這顯然比自頂向下進(jìn)行功能分解更自然、合理。“治”的基本方法就是:采用封裝技術(shù)對(duì)被分割的事物進(jìn)行包裝,以簡(jiǎn)化接口、減少事物之間不必要的聯(lián)系。利用事物之間的泛化管子構(gòu)造繼承機(jī)制以獲得重用??捎眯院涂蓴U(kuò)展性意味著復(fù)雜系統(tǒng)可以由簡(jiǎn)單系統(tǒng)組合而成,并且復(fù)雜系統(tǒng)可以采用“迭代”方式,逐步增量形成。基于對(duì)象的分塊技術(shù)也有助于解決過(guò)程的伸縮性問(wèn)題。4.何謂“軟件復(fù)用”,為什么說(shuō)面向?qū)ο蠹夹g(shù)對(duì)“軟件復(fù)用”提供了卓有成效的支持? 軟件重用是將已有軟件的各種有關(guān)知識(shí)用于建立新的軟件,以縮減軟件開(kāi)發(fā)和維護(hù)的花費(fèi)。包括分析模型、設(shè)計(jì)模型、代碼以及測(cè)試用例、測(cè)試信息等等的復(fù)用。面向?qū)ο蠹夹g(shù)使軟件重用技術(shù)更加完善和規(guī)范,對(duì)象的重要特性。:抽象、封裝、繼承和多態(tài)都從不同角度支持軟件重用:抽象使得對(duì)象組件更具一般化,也即充分考慮到對(duì)象自身的性質(zhì)、性能和應(yīng)用環(huán)境的復(fù)雜性等多方面的要求,以此獲得通用化和標(biāo)準(zhǔn)化方面的保證。封裝允許開(kāi)發(fā)人員將對(duì)象視為“黑匣子”,只需通過(guò)界面去理解、引用和操作對(duì)象,而不必關(guān)心其實(shí)現(xiàn)細(xì)節(jié)。繼承使得基于類(lèi)的抽象層次和泛化結(jié)構(gòu)的代碼重用成為可能,也即通過(guò)泛化關(guān)系使得特殊類(lèi)可以共享一般類(lèi)的性質(zhì)。5.“用況驅(qū)動(dòng)的、迭代式的、增量”的開(kāi)發(fā)方法的要點(diǎn)、優(yōu)點(diǎn)、時(shí)間盒。要點(diǎn):①軟件開(kāi)發(fā)過(guò)程要經(jīng)歷若干個(gè)開(kāi)發(fā)周期,每個(gè)周期都包含:分析、設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試等活動(dòng)。②在經(jīng)過(guò)一個(gè)初步的計(jì)劃和細(xì)化階段后,開(kāi)發(fā)進(jìn)入由一系列開(kāi)發(fā)周期組成的系統(tǒng)構(gòu)造階段,所以迭代主要發(fā)生在構(gòu)造階段,當(dāng)然也包含部分實(shí)施,因此嚴(yán)格講,構(gòu)造發(fā)生在構(gòu)造及實(shí)施階段。③在每個(gè)開(kāi)發(fā)周期中,通過(guò)增加新的功能使系統(tǒng)得以擴(kuò)充。④每個(gè)開(kāi)發(fā)周期只針對(duì)比較小的一部分需求,它要經(jīng)歷分析、設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試等活動(dòng)。每個(gè)開(kāi)發(fā)周期完成后,系統(tǒng)都獲得一定程度的擴(kuò)充。開(kāi)發(fā)周期一般是以用況為單位組織的。優(yōu)點(diǎn):①因?yàn)槊總€(gè)開(kāi)發(fā)周期只針對(duì)比較小的一部分需求,所以就可以比較好的解決由于一個(gè)開(kāi)發(fā)過(guò)程太龐大、復(fù)雜使得開(kāi)發(fā)人員無(wú)從下手的問(wèn)題,也即能夠比較有效地管理復(fù)雜性。②因?yàn)槊總€(gè)開(kāi)發(fā)周期只快速實(shí)現(xiàn)系統(tǒng)的一小部分,所以在開(kāi)發(fā)過(guò)程的早期就能夠獲得反饋信息。用戶(hù)的反饋信息越早越好,盡早聽(tīng)到和采納用戶(hù)的意見(jiàn),可以少犯錯(cuò)誤。時(shí)間盒即給開(kāi)發(fā)周期限定時(shí)間,開(kāi)發(fā)周期中的所用工作都必須在這個(gè)時(shí)間內(nèi)完成。6.“計(jì)劃和細(xì)化”階段的主要工作和主要活動(dòng)。主要工作:初期概念的形成、為做出各種項(xiàng)目選擇所進(jìn)行的調(diào)查研究、需求的規(guī)格化描述等。主要活動(dòng):定義計(jì)劃草案、編制初步調(diào)查報(bào)告、定義需求、在術(shù)語(yǔ)表中記錄術(shù)語(yǔ)、實(shí)現(xiàn)原型、定義用況、定義概念模型草案、定義系統(tǒng)結(jié)構(gòu)草案、精華計(jì)劃。7.“構(gòu)造階段”的主要工作和主要活動(dòng)。構(gòu)造階段包括一系列重復(fù)的開(kāi)發(fā)周期,每個(gè)開(kāi)發(fā)周期主要工作:精華計(jì)劃、同步制品、分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試等。在這些開(kāi)發(fā)周期中,系統(tǒng)得到了擴(kuò)展和完善。構(gòu)造階段的最終目標(biāo)是得到一個(gè)能正確符合需求的軟件系統(tǒng)。8.何謂鏈屬性,試述鏈屬性不應(yīng)置入關(guān)聯(lián)兩端的某一對(duì)象類(lèi)中作為其屬性的理由,請(qǐng)舉例說(shuō)明之。由于關(guān)聯(lián)特性與存在關(guān)聯(lián)關(guān)系的兩個(gè)類(lèi)有關(guān),因此建模時(shí)經(jīng)常會(huì)將這些屬性隨意地置入某一個(gè)類(lèi)中,當(dāng)成類(lèi)的屬性。關(guān)聯(lián)的特性是與被關(guān)聯(lián)的兩個(gè)或多個(gè)類(lèi)有關(guān)的那些屬性,這些屬性不是從屬于單個(gè)類(lèi)的,因而不應(yīng)該隨意置入某個(gè)類(lèi)中。9.系統(tǒng)分析階段如何識(shí)別類(lèi)和排除虛假類(lèi)?(分別簡(jiǎn)述語(yǔ)法分析法和現(xiàn)實(shí)分析法的要點(diǎn))。現(xiàn)實(shí)分析法:確定問(wèn)題陳述所涉及的哪些活動(dòng)是與需求密切相關(guān)的,分析這些活動(dòng)涉及到哪些具體的事物、概念、過(guò)程,遵循哪些規(guī)則等,它們都可能是系統(tǒng)內(nèi)部的對(duì)象類(lèi)。語(yǔ)法分析發(fā):在問(wèn)題陳述中,對(duì)象類(lèi)通常對(duì)應(yīng)于名詞或名詞詞組,因此從問(wèn)題陳述中找出所有的名詞或名詞詞組,就得到大多數(shù)的候選類(lèi),運(yùn)用排除法可以排除虛假的類(lèi),就獲得確定的類(lèi)組。虛假類(lèi):冗余類(lèi)、無(wú)關(guān)類(lèi)、模糊類(lèi)、屬性、操作、

      第二篇:面向?qū)ο蠹夹g(shù)引論(復(fù)習(xí)題)[參考解答]

      《面向?qū)ο蠹夹g(shù)引論》復(fù)習(xí)題

      一、概念與術(shù)語(yǔ)

      1.對(duì)象:

      在現(xiàn)實(shí)世界中,對(duì)象定義為:?jiǎn)栴}的概念和抽象的或具有明確邊界和意義的事物;在數(shù)據(jù)世界中,對(duì)象定義為:一組數(shù)據(jù)以及施加于這組數(shù)據(jù)上的一組操作;

      從系統(tǒng)的觀點(diǎn)出發(fā),我們可以給對(duì)象作如下定義:對(duì)象是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位(單元),一個(gè)對(duì)象是由一組屬性和對(duì)這組屬性進(jìn)行操作的一組服務(wù)構(gòu)成的。

      2.持久對(duì)象:

      生存期可以超越程序的執(zhí)行時(shí)間而長(zhǎng)期存在的對(duì)象稱(chēng)為持久對(duì)象。換句話(huà)說(shuō):一個(gè)對(duì)象在程序運(yùn)行結(jié)束后仍繼續(xù)存在,則稱(chēng)該對(duì)象是持久的。

      2.主動(dòng)對(duì)象:

      主動(dòng)對(duì)象是一組屬性和一組操作(服務(wù))的封裝體,其中至少有一個(gè)操作不需要接收消息就能主動(dòng)執(zhí)行(稱(chēng)為主動(dòng)服務(wù))。

      3.被動(dòng)對(duì)象:

      被動(dòng)對(duì)象(Passive object)是指其內(nèi)部的操作需要通過(guò)外部消息驅(qū)動(dòng)才能執(zhí)行的對(duì)象??梢钥闯霰粍?dòng)對(duì)象必須工作在消息驅(qū)動(dòng)環(huán)境中。

      4.類(lèi):

      定義1一組具有相同性質(zhì)(屬性和操作)的對(duì)象的抽象。

      定義2類(lèi)是對(duì)一組具有相同屬性、操作、關(guān)系和語(yǔ)義的對(duì)象的描述。

      定義3具有相同屬性和容許操作的一組對(duì)象的一般描述稱(chēng)為類(lèi)。

      5.主動(dòng)類(lèi):

      主動(dòng)類(lèi)的對(duì)象至少擁有一個(gè)進(jìn)程或線(xiàn)程,因此它能夠自主執(zhí)行(能夠啟動(dòng)控制活動(dòng))。注意:主動(dòng)類(lèi)的對(duì)象所描述的元素的行為與其他元素的行為并發(fā),這是它與一般類(lèi)的唯一區(qū)別。

      6.接口:

      接口是描述一個(gè)類(lèi)或構(gòu)件的一個(gè)服務(wù)的操作集。因此,接口描述元素的外部可見(jiàn)行為。接口描述了一組操作的規(guī)格,而不是操作的實(shí)現(xiàn)。圖形上,用一個(gè)帶有名稱(chēng)的圓表示接口。

      7.用況:

      用況是對(duì)一組動(dòng)作序列的描述,系統(tǒng)執(zhí)行這些動(dòng)作將產(chǎn)生一個(gè)對(duì)特定的參與者有價(jià)值而且可觀察的結(jié)果。用況用于對(duì)系統(tǒng)語(yǔ)境和系統(tǒng)需求建模。圖形上,用一個(gè)包含名稱(chēng)的實(shí)線(xiàn)橢圓表示用況。

      8.協(xié)作:

      協(xié)作定義了一個(gè)交互,它是由一組共同工作以提供某協(xié)作行為的角色和其他元素構(gòu)成的一個(gè)群體,這些協(xié)作行為大于所有元素的各自行為的綜合。因此協(xié)作有結(jié)構(gòu)、行為和維度。圖形上,用一個(gè)僅包含名稱(chēng)(協(xié)作名)的虛線(xiàn)橢圓表示協(xié)作。

      9.構(gòu)件:

      構(gòu)件是系統(tǒng)中物理的、可替代的部件,它遵循且提供一組接口的實(shí)現(xiàn)。構(gòu)件是物理的、可替代的部件。

      10.節(jié)點(diǎn):

      節(jié)點(diǎn)也是物理的,是在系統(tǒng)運(yùn)行時(shí)存在的物理元素,它表示了一種可計(jì)算的資源,通常至少有一些記憶能力和處理能力。

      11.一般類(lèi) /12.特殊類(lèi):

      如果類(lèi)A具有類(lèi)B的全部屬性和服務(wù),而且具有自己特有的某些屬性和服務(wù),則類(lèi)A叫做類(lèi)B的特殊類(lèi),類(lèi)B叫做的類(lèi)A的一般類(lèi)。兩者之間的關(guān)系稱(chēng)為“泛化”??梢钥闯鲆话?/p>

      類(lèi)具有父類(lèi)的特征,而特殊類(lèi)具有子類(lèi)的特征,特殊類(lèi)可以共享一般類(lèi)的性質(zhì)。

      13.關(guān)聯(lián)(關(guān)系)

      關(guān)聯(lián)是對(duì)象之間連接(鏈)的抽象,用來(lái)描述對(duì)象之間的相互作用。

      14.關(guān)聯(lián)類(lèi):

      關(guān)聯(lián)類(lèi)是一種具有關(guān)聯(lián)特性和類(lèi)特性的建模元素,可以將關(guān)聯(lián)類(lèi)看成是具有類(lèi)特性的關(guān)聯(lián),或是具有關(guān)聯(lián)特性的類(lèi)。

      15.依賴(lài)(關(guān)系):

      依賴(lài)是兩個(gè)事物之間的一種語(yǔ)義關(guān)系,其中一個(gè)事物(獨(dú)立事物)的改變會(huì)影響另一事物(依賴(lài)事物)的語(yǔ)義。

      16.泛化(關(guān)系):

      泛化是事物(類(lèi))之間的一種一般/特殊關(guān)系,也即一般事物(一般類(lèi))和特殊事物(特殊類(lèi))之間的關(guān)系。

      17.實(shí)現(xiàn)(關(guān)系):

      是類(lèi)元之間的語(yǔ)義關(guān)系。

      18.鏈和鏈屬性:

      關(guān)聯(lián)或相互作用表現(xiàn)出不同的類(lèi)的對(duì)象實(shí)例之間的實(shí)際的或概括上的聯(lián)系,稱(chēng)為“鏈”;

      19.聚合:

      聚合用來(lái)表示事物之間的“整體/部分”關(guān)系,“整體”事物是一個(gè)較大的事物,它是由多個(gè)“部分”事物(較小的事物)組成的。

      20.問(wèn)題域:

      問(wèn)題域是指特定應(yīng)用系統(tǒng)的應(yīng)用領(lǐng)域,即在現(xiàn)實(shí)世界中由該系統(tǒng)進(jìn)行處理的業(yè)務(wù)范圍。

      21.系統(tǒng)責(zé)任:

      系統(tǒng)責(zé)任是指系統(tǒng)應(yīng)該具備的職能,通俗地講,即系統(tǒng)除能做什么之外,還應(yīng)該作些什么。

      22.消息:

      在面向?qū)ο笳Z(yǔ)境中,消息定義為向?qū)ο蟀l(fā)出的服務(wù)請(qǐng)求(要求對(duì)象執(zhí)行它其中的一個(gè)操作的請(qǐng)求)。

      23.交互:

      交互是發(fā)生在對(duì)象之間或?qū)ο髢?nèi)部的消息傳遞行為,它由在特定語(yǔ)境中共同完成一定任務(wù)的一組對(duì)象之間交換的消息組成。

      24.事件:

      25.事件流:

      26.狀態(tài):

      27.狀態(tài)機(jī):

      狀態(tài)機(jī)描述了一個(gè)對(duì)象或一個(gè)交互的生命內(nèi)響應(yīng)事件所經(jīng)歷的狀態(tài)序列,即描述其狀態(tài)變遷。

      28.封裝:

      封裝是對(duì)擁有結(jié)構(gòu)和行為的一個(gè)抽象(對(duì)象)的元素進(jìn)行劃分的過(guò)程,封裝完成抽象的契約接口和對(duì)象實(shí)施的分離。

      29.繼承:

      特殊類(lèi)擁有一般類(lèi)的全部屬性和服務(wù)(操作),稱(chēng)作特殊類(lèi)對(duì)一般類(lèi)的繼承。多態(tài):

      同一屬性或操作在一般類(lèi)和各個(gè)特殊類(lèi)中具有不同的意義。

      31.抽象:

      即指通過(guò)思考進(jìn)行分離的行為(CED).思考就是對(duì)事物性質(zhì)進(jìn)行觀察與分析,而分離則是對(duì)分析結(jié)果中的一些細(xì)節(jié)的剝離,從而得到事物的最基本的性質(zhì)。

      32.角色:

      角色是關(guān)聯(lián)中(靠近它的)一端的類(lèi)對(duì)另一端的類(lèi)呈現(xiàn)的職責(zé),可以說(shuō)角色是關(guān)聯(lián)的作用者。

      33.限定詞(修飾關(guān)聯(lián))

      限定詞是關(guān)聯(lián)的一個(gè)特定的屬性(而不是工作臺(tái)或工件的屬性,其實(shí)該屬性與工作臺(tái)及工件都有關(guān),是使二者發(fā)生關(guān)聯(lián)的數(shù)據(jù)之一),它的值劃分了通過(guò)一個(gè)關(guān)聯(lián)與一個(gè)對(duì)象相關(guān)的對(duì)象集。

      34.UML的規(guī)則(命名、范圍、可見(jiàn)性等):

      1)命名:給事物、關(guān)系和圖等建模元素命名。

      2)范圍:給一個(gè)名稱(chēng)以特定含義的語(yǔ)境。

      3)可見(jiàn)性:表示元素的名稱(chēng)如何被其他元素看到和使用。

      4)完整性:保證事物正確、一致地相互聯(lián)系,體現(xiàn)事物之間的合理性和一致性。5)執(zhí)行:運(yùn)行或模擬動(dòng)態(tài)模型的含義是什么。

      35.UML的公共機(jī)制(詳述、修飾、擴(kuò)展機(jī)制(構(gòu)造型、標(biāo)記值、約束)):

      1)詳述:詳述是對(duì)UML圖形符號(hào)的補(bǔ)充,對(duì)圖形表示法的每一部分(圖形符號(hào))都可以附上一個(gè)詳述,該詳述提供了對(duì)構(gòu)造塊的語(yǔ)法和語(yǔ)義的文字?jǐn)⑹觥?/p>

      2)修飾:修飾是附加到元素的基本表示法上的文字或圖形項(xiàng),用于對(duì)元素規(guī)格說(shuō)明的細(xì)節(jié)進(jìn)行可視化。

      3)通用劃分:方法一:對(duì)類(lèi)和對(duì)象的劃分;方法二:接口和實(shí)現(xiàn)的分離。

      4)擴(kuò)展機(jī)制 :三種機(jī)制來(lái)擴(kuò)展語(yǔ)言的語(yǔ)法和語(yǔ)義,分別是:構(gòu)造型(表示新的建模元素)、標(biāo)記值(表示新的額建模元素屬性)和約束(表示新的建模元素語(yǔ)言)。

      二、思考題

      1.為什么應(yīng)用對(duì)象技術(shù)可以改變軟件制造(生產(chǎn))方式?

      2.試述建模的重要性,為什么建??梢越档拖到y(tǒng)實(shí)現(xiàn)的復(fù)雜度。

      3.為什么面向?qū)ο蠓椒茌^好地管理復(fù)雜性并增強(qiáng)伸縮性。

      4.何謂“軟件復(fù)用”,為什么說(shuō)面向?qū)ο蠹夹g(shù)對(duì)“軟件復(fù)用”提供了卓有成效的支持?

      5.“用況驅(qū)動(dòng)的、迭代式的、增量”的開(kāi)發(fā)方法的要點(diǎn)、優(yōu)點(diǎn)、時(shí)間盒。

      6.UML的三大建模元素(事物、關(guān)系、圖)、各種結(jié)構(gòu)事物的定義和用途。

      7.“計(jì)劃和細(xì)化”階段的主要工作和主要活動(dòng)。

      8.“構(gòu)造階段”的主要工作和主要活動(dòng)。

      9.面向?qū)ο笥心男┮??為什么說(shuō)“封裝”是其最重要的要素?

      10.何謂鏈屬性,試述鏈屬性不應(yīng)置入關(guān)聯(lián)兩端的某一對(duì)象類(lèi)中作為其屬性的理由,請(qǐng)舉例說(shuō)明之。

      11.系統(tǒng)分析階段如何識(shí)別類(lèi)和排除虛假類(lèi)?(分別簡(jiǎn)述語(yǔ)法分析法和現(xiàn)實(shí)分析法的要點(diǎn))。

      12.系統(tǒng)分析階段如何識(shí)別關(guān)聯(lián)和排除虛假關(guān)聯(lián)?(分別簡(jiǎn)述語(yǔ)法分析法和現(xiàn)實(shí)分析法的要點(diǎn))。

      13.簡(jiǎn)述描述類(lèi)的基本特征(名稱(chēng)、屬性等)并舉例說(shuō)明之。

      14.軟件維護(hù)的主要工作是什么,為什么說(shuō)每一次維護(hù)可能又是一個(gè)較小的應(yīng)用開(kāi)發(fā)過(guò)程?

      15.為什么“繼承”可以簡(jiǎn)化對(duì)問(wèn)題的認(rèn)識(shí)?

      16.面向?qū)ο笙到y(tǒng)中通常存在著持久對(duì)象、主動(dòng)對(duì)象、和被動(dòng)對(duì)象等三種對(duì)象,給出這三種對(duì)象的定義,并舉例說(shuō)明之。

      17.解釋“多態(tài)性”的基本含義,為什么“多態(tài)性”的實(shí)際應(yīng)用必須建立在類(lèi)的一般化層次結(jié)構(gòu)上?

      18.列舉引起需求變化的主要因素,面向?qū)ο蠓椒ㄈ绾螒?yīng)對(duì)需求的不斷變化?

      19.何謂“多態(tài)性”,試舉例說(shuō)明“多態(tài)性”的應(yīng)用。

      20.簡(jiǎn)述軟件維護(hù)的主要工作,并說(shuō)明其重要性。

      三、設(shè)計(jì)部分

      1.根據(jù)給定的領(lǐng)域和場(chǎng)景寫(xiě)出問(wèn)題陳述、建立用況模型,針對(duì)指定的用況,寫(xiě)出事件流。

      2.設(shè)計(jì)為詞匯建模的類(lèi)圖、為數(shù)據(jù)庫(kù)建模的類(lèi)圖、為簡(jiǎn)單協(xié)作建模的類(lèi)圖。

      3.按時(shí)間順序?qū)刂屏鹘P偷牟襟E,以指定用況作為交互語(yǔ)境設(shè)計(jì)順序圖。

      4.按對(duì)象組織對(duì)控制流建模型的步驟,以指定用況作為交互語(yǔ)境設(shè)計(jì)協(xié)作圖。

      5.對(duì)對(duì)象的生命期建模的策略和步驟,為指定類(lèi)設(shè)計(jì)狀態(tài)圖。

      第三篇:9、軟件工程面向?qū)ο蠓椒▽W(xué)引論總結(jié)

      1. 面向?qū)ο蠓椒▽W(xué)的定義和對(duì)象方法學(xué)的要點(diǎn)。

      面向?qū)ο蠓椒ò褦?shù)據(jù)和行為看成同等重要,它是一種以數(shù)據(jù)為主線(xiàn),把數(shù)據(jù)和對(duì)數(shù)據(jù)的操作緊密地結(jié)合起來(lái)的方法。面向?qū)ο蠓椒▽W(xué)具有下述4個(gè)要點(diǎn)。

      (1)把對(duì)象(object)作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟件構(gòu)件。面向?qū)ο蟪绦蚴怯蓪?duì)象組成的,程序中任何元素都是對(duì)象,復(fù)雜對(duì)象由比較簡(jiǎn)單的對(duì)象組合而成。

      (2)把所有對(duì)象都劃分成類(lèi)(class)。每個(gè)類(lèi)都定義了一組數(shù)據(jù)和一組操作,類(lèi)是對(duì)具有相同數(shù)據(jù)和相同操作的一組相似對(duì)象的定義。

      (3)按照父類(lèi)(或稱(chēng)為基類(lèi))與子類(lèi)(或稱(chēng)為派生類(lèi))的關(guān)系,把若干個(gè)相關(guān)類(lèi)組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(也稱(chēng)為類(lèi)等級(jí))。在類(lèi)等級(jí)中,下層派生類(lèi)自動(dòng)擁有上層基類(lèi)中定義的數(shù)據(jù)和操作,這種現(xiàn)象稱(chēng)為繼承。

      (4)對(duì)象彼此間僅能通過(guò)發(fā)送消息互相聯(lián)系。

      也就是說(shuō),對(duì)象的所有私有信息都被封裝在該對(duì)象內(nèi),不能從外界直接訪問(wèn),這就是通常所說(shuō)的封裝性。

      2. 面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn)是:(1)與人類(lèi)習(xí)慣的思維方法一致(2)穩(wěn)定性好(3)可重用性好

      (4)較易開(kāi)發(fā)大型軟件產(chǎn)品(5)可維護(hù)性好

      3. 對(duì)象的概念,對(duì)象的特點(diǎn)?

      對(duì)象是封裝了數(shù)據(jù)結(jié)構(gòu)及可以施加在這些數(shù)據(jù)結(jié)構(gòu)上的操作的封裝體,這個(gè)封裝體有可以惟一地標(biāo)識(shí)它的名字,而且向外界提供一組服務(wù)(即公有的操作)。特點(diǎn):

      ① 以數(shù)據(jù)為中心。不設(shè)置與數(shù)據(jù)無(wú)關(guān)的操作;

      ② Object主動(dòng)處理而不被動(dòng)地等待被處理,外部只能通過(guò)message請(qǐng)求操作;

      ③ 實(shí)現(xiàn)了數(shù)據(jù)封裝。具有黑盒性:外部操作時(shí),無(wú)須知道該object內(nèi)部的數(shù)據(jù)結(jié)構(gòu)及算法; ④ 具有并行性:不同object各自獨(dú)立地處理自身數(shù)據(jù),彼此間僅通過(guò)傳遞message完成通信;

      ⑤ 模塊獨(dú)立性好:內(nèi)聚強(qiáng)(①)、耦合松(③ ④)

      4. 類(lèi)、實(shí)例、消息、方法、屬性、封裝、繼承、多態(tài)性、重載的定義。

      類(lèi):是對(duì)具有相同數(shù)據(jù)和相同操作的一組相似對(duì)象的定義。

      實(shí)例:是由某個(gè)特定的類(lèi)所描述的一個(gè)具體的對(duì)象。

      消息:是要求某個(gè)對(duì)象執(zhí)行在定義它的那個(gè)類(lèi)中所定義的某個(gè)操作的規(guī)格說(shuō)明。

      方法:是對(duì)象所能執(zhí)行的操作,也就是類(lèi)中所定義的服務(wù)。

      屬性:是類(lèi)中所定義的數(shù)據(jù)。

      5. 模型的概念,面向?qū)ο蠼5母拍?。要建立哪些模型?/p>

      所謂模型,就是為了理解事物而對(duì)事物做出的一種抽象,是對(duì)事物一種無(wú)歧義的書(shū)面描述。建立三種模型:

      ① 描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的對(duì)象模型(object model).② 描述系統(tǒng)控制結(jié)構(gòu)的動(dòng)態(tài)模型(dynamic model).③ 描述系統(tǒng)功能的功能模型(function model).6. 對(duì)象模型是表示靜態(tài)的、結(jié)構(gòu)化的系統(tǒng)的數(shù)據(jù)性質(zhì)。類(lèi)圖是描述類(lèi)及類(lèi)與類(lèi)之間的靜態(tài)關(guān)系。包括定義類(lèi)、定義屬性、定義服務(wù)。7. 表示關(guān)系的符號(hào):類(lèi)與類(lèi)之間通常有關(guān)聯(lián)(Association)、泛化(Generalization)、聚合(Aggregation)、組合(Composition)、依賴(lài)(Dependency)等關(guān)系。

      8. 動(dòng)態(tài)模型表示瞬時(shí)的、行為化的系統(tǒng)的“控制”性質(zhì),它規(guī)定了對(duì)象模型中的對(duì)象的合法變化序列

      關(guān)聯(lián) 泛化 聚合 組合 依賴(lài)

      9.Association

      Generalization

      Aggregation

      Composition

      Dependency

      動(dòng)態(tài)模型三要素:

      ① 事件(event):引發(fā) object 狀態(tài)改變的控制信息(瞬時(shí))。② 狀態(tài)(status):即 object 的 attributes 所處的情形(可持續(xù))。③ 行為(action): Object 要達(dá)到某種 status 所做的操作(耗時(shí))。10.功能模型表示變化的系統(tǒng)的“功能”性質(zhì),它指明了系統(tǒng)應(yīng)該“做什么”,因此更直接地反映了用戶(hù)對(duì)目標(biāo)系統(tǒng)的需求。功能模型由一組數(shù)據(jù)流圖組成。

      在面向?qū)ο蠓椒▽W(xué)中,數(shù)據(jù)流圖遠(yuǎn)不如在結(jié)構(gòu)分析、設(shè)計(jì)方法中那樣重要。11.UML提供的用例圖也是進(jìn)行需求分析和建立功能模型的強(qiáng)有力工具。在UML中把用用例圖建立起來(lái)的系統(tǒng)模型稱(chēng)為用例模型。

      用例模型描述的是外部行為者(actor)所理解的系統(tǒng)功能。用例模型的建立是系統(tǒng)開(kāi)發(fā)者和用戶(hù)反復(fù)討論的結(jié)果,它描述了開(kāi)發(fā)者和用戶(hù)對(duì)需求規(guī)格所達(dá)成的共識(shí)。

      第四篇:面向?qū)ο蟪绦蛟O(shè)計(jì)教程 答案

      面向?qū)ο蟪绦蛟O(shè)計(jì)教程(C++語(yǔ)言描述)題解與課程設(shè)計(jì)指導(dǎo)

      第1章

      面向?qū)ο蟪绦蛟O(shè)計(jì)概論

      一、名詞解釋 抽象封裝消息 【問(wèn)題解答】

      面向?qū)ο蠓椒ㄖ械某橄笫侵笇?duì)具體問(wèn)題(對(duì)象)進(jìn)行概括,抽出一類(lèi)對(duì)象的公共性質(zhì)并加以描述的過(guò)程。

      面向?qū)ο蠓椒ㄖ械姆庋b就是把抽象出來(lái)的對(duì)象的屬性和行為結(jié)合成一個(gè)獨(dú)立的單位,并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)。

      消息是面向?qū)ο蟪绦蛟O(shè)計(jì)用來(lái)描述對(duì)象之間通信的機(jī)制。一個(gè)消息就是一個(gè)對(duì)象要求另一個(gè)對(duì)象實(shí)施某種操作的一個(gè)請(qǐng)求。

      二、填空題(1)目前有面向過(guò)程的結(jié)構(gòu)化程序設(shè)計(jì)方法和面向?qū)ο蟮某绦蛟O(shè)計(jì)方法兩種重要的程序設(shè)計(jì)方法。

      (2)結(jié)構(gòu)化程序設(shè)計(jì)方法中的模塊由順序、選擇和循環(huán)3種基本結(jié)構(gòu)組成。(3)在結(jié)構(gòu)化程序設(shè)計(jì)方法中,程序可表示為程序=數(shù)據(jù)結(jié)構(gòu)+算法; 而面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,程序可表示為程序=對(duì)象+消息。(4)結(jié)構(gòu)化程序設(shè)計(jì)方法中的基本模塊是過(guò)程; 而面向?qū)ο蟪绦蛟O(shè)計(jì)方法中的基本模塊是類(lèi)。

      (5)面向?qū)ο蟪绦蛟O(shè)計(jì)方法具有抽象性、封裝性、繼承性和多態(tài)性等特點(diǎn)。

      三、選擇題(至少選一個(gè),可以多選)

      (1)面向?qū)ο蟪绦蛟O(shè)計(jì)著重于(B)的設(shè)計(jì)。A.對(duì)象B.類(lèi)C.算法D.數(shù)據(jù)(2)面向?qū)ο蟪绦蛟O(shè)計(jì)中,把對(duì)象的屬性和行為組織在同一個(gè)模塊內(nèi)的機(jī)制叫做(C)。

      A.抽象 B.繼承 C.封裝 D.多態(tài)

      (3)在面向?qū)ο蟪绦蛟O(shè)計(jì)中,類(lèi)通過(guò)(D)與外界發(fā)生關(guān)系。A.對(duì)象 B.類(lèi) C.消息 D.接口

      (4)面向?qū)ο蟪绦蛟O(shè)計(jì)中,對(duì)象與對(duì)象之間的通信機(jī)制是(C)。A.對(duì)象 B.類(lèi) C.消息 D.接口

      (5)關(guān)于C++與C語(yǔ)言的關(guān)系的描述中,(D)是錯(cuò)誤的。A.C語(yǔ)言是C++的一個(gè)子集 B.C語(yǔ)言與C++是兼容的

      C.C++對(duì)C語(yǔ)言進(jìn)行了一些改進(jìn) D.C++和C語(yǔ)言都是面向?qū)ο蟮?/p>

      【結(jié)果分析】

      C語(yǔ)言是面向過(guò)程的。C++語(yǔ)言是一種經(jīng)過(guò)改進(jìn)的更為優(yōu)化的C語(yǔ)言,是一種混合型語(yǔ)言,既面向過(guò)程也面向?qū)ο蟆?/p>

      (6)面向?qū)ο蟮某绦蛟O(shè)計(jì)將數(shù)據(jù)結(jié)構(gòu)與(A)放在一起,作為一個(gè)相互依存、不可分割的整體來(lái)處理。A.算法 B.信息 C.數(shù)據(jù)隱藏 D.數(shù)據(jù)抽象(7)下面(A)不是面向?qū)ο笙到y(tǒng)所包含的要素。

      A.重載 B.對(duì)象 C.類(lèi) D.繼承 【結(jié)果分析】

      面向?qū)ο?對(duì)象+類(lèi)+繼承+消息+多態(tài)(8)下面說(shuō)法正確的是(BC)。

      A.將數(shù)據(jù)結(jié)構(gòu)和算法置于同一個(gè)函數(shù)內(nèi),即為數(shù)據(jù)封裝 B.一個(gè)類(lèi)通過(guò)繼承可以獲得另一個(gè)類(lèi)的特性

      C.面向?qū)ο笠蟪绦騿T集中于事物的本質(zhì)特征,用抽象的觀點(diǎn)看待程序 D.同一消息為不同的對(duì)象接受時(shí),產(chǎn)生的行為是一樣的,這稱(chēng)為一致性 【結(jié)果分析】

      面向?qū)ο蟪绦蛟O(shè)計(jì)方法具有抽象性、封裝性、繼承性和多態(tài)性等特點(diǎn)。將數(shù)據(jù)結(jié)構(gòu)和算法置于同一個(gè)類(lèi)內(nèi),即為數(shù)據(jù)封裝。同一消息為不同的對(duì)象接受時(shí),產(chǎn)生的行為可能是不一樣的,這稱(chēng)為多態(tài)性。(9)下面說(shuō)法正確的是(AD)。

      A.對(duì)象是計(jì)算機(jī)內(nèi)存中的一塊區(qū)域,它可以存放代碼和數(shù)據(jù) B.對(duì)象實(shí)際是功能相對(duì)獨(dú)立的一段程序

      C.各個(gè)對(duì)象間的數(shù)據(jù)可以共享是對(duì)象的一大優(yōu)點(diǎn)

      D.在面向?qū)ο蟮某绦蛑校瑢?duì)象之間只能通過(guò)消息相互通信 【結(jié)果分析】

      對(duì)象是計(jì)算機(jī)內(nèi)存中的一塊區(qū)域。在對(duì)象中,不但存有數(shù)據(jù),而且存有代碼,使得每個(gè)對(duì)象在功能上相互之間保持相對(duì)獨(dú)立。對(duì)象之間存在各種聯(lián)系,但它們之間只能通過(guò)消息進(jìn)行通信。

      四、判斷題

      (1)在高級(jí)程序設(shè)計(jì)語(yǔ)言中,一般用類(lèi)來(lái)實(shí)現(xiàn)對(duì)象,類(lèi)是具有相同屬性和行為的一組對(duì)象的集合,它是創(chuàng)建對(duì)象的模板。(√)

      (2)C++語(yǔ)言只支持面向?qū)ο蠹夹g(shù)的抽象性、封裝性、繼承性等特性,而不支持多態(tài)性。(×)【結(jié)果分析】

      C++語(yǔ)言不僅支持面向?qū)ο蠹夹g(shù)的抽象性、封裝性、繼承性等特性,而且支持多態(tài)性。

      (3)面向?qū)ο蟪绦蛟O(shè)計(jì)中的消息應(yīng)該包含“如何做”的信息。(×)【結(jié)果分析】

      消息是面向?qū)ο蟪绦蛟O(shè)計(jì)用來(lái)描述對(duì)象之間通信的機(jī)制。向?qū)ο蟆鞍l(fā)送消息”只需告訴對(duì)象做什么,對(duì)象根據(jù)這個(gè)消息決定如何做。(4)一個(gè)消息只能產(chǎn)生特定的響應(yīng)效果。(×)【結(jié)果分析】

      當(dāng)一個(gè)對(duì)象發(fā)出消息時(shí),由于接收對(duì)象的類(lèi)型可能不同,所以,它們可能做出不同的反應(yīng)。這樣,一個(gè)消息可以產(chǎn)生不同的響應(yīng)效果,這種現(xiàn)象叫做多態(tài)。(5)類(lèi)的設(shè)計(jì)和類(lèi)的繼承機(jī)制實(shí)現(xiàn)了軟件模塊的可重用性。(√)(6)C++語(yǔ)言和Java語(yǔ)言均不是一個(gè)純正的面向?qū)ο蟮某绦蛟O(shè)計(jì)的語(yǔ)言。(×)【結(jié)果分析】

      Java語(yǔ)言是一個(gè)純正的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。(7)學(xué)習(xí)C++語(yǔ)言是學(xué)習(xí)面向?qū)ο蟮某绦蛟O(shè)計(jì)方法的唯一途徑。(×)【結(jié)果分析】

      程序設(shè)計(jì)方法是獨(dú)立于具體程序設(shè)計(jì)語(yǔ)言的一種技術(shù),學(xué)習(xí)C++語(yǔ)言是學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)方法的重要途徑之一。

      (8)在C++語(yǔ)言中,類(lèi)是支持?jǐn)?shù)據(jù)封裝的工具。(√)

      五、簡(jiǎn)答題

      (1)什么是結(jié)構(gòu)化程序設(shè)計(jì)方法?它有哪些優(yōu)點(diǎn)和缺點(diǎn)? 【問(wèn)題解答】

      結(jié)構(gòu)化程序設(shè)計(jì)方法著眼于系統(tǒng)要實(shí)現(xiàn)的功能,從系統(tǒng)的輸入輸出出發(fā),分析系統(tǒng)要做哪些事情,進(jìn)而考慮如何做這些事情,自頂向下地對(duì)系統(tǒng)的功能進(jìn)行分解,來(lái)建立系統(tǒng)的功能結(jié)構(gòu)和相應(yīng)的程序模塊結(jié)構(gòu),有效地將一個(gè)較復(fù)雜的程序系統(tǒng)設(shè)計(jì)任務(wù)分解成許多易于控制和處理的子任務(wù),便于開(kāi)發(fā)和維護(hù)。隨著程序規(guī)模與復(fù)雜性的增長(zhǎng),這種面向過(guò)程的結(jié)構(gòu)化程序設(shè)計(jì)方法存在明顯的不足之處。首先是數(shù)據(jù)安全性問(wèn)題。由于數(shù)據(jù)被每個(gè)模塊所共用,因此是不安全的,一旦出錯(cuò),很難查明原因。其次是可維護(hù)性及可重用性差。它把數(shù)據(jù)結(jié)構(gòu)和算法分離為相互獨(dú)立的實(shí)體,一旦數(shù)據(jù)結(jié)構(gòu)需要改變時(shí),常常要涉及整個(gè)程序,修改工作量極大并容易產(chǎn)生新的錯(cuò)誤。每一種相對(duì)于老問(wèn)題的新方法都要帶來(lái)額外的開(kāi)銷(xiāo)。另外,圖形用戶(hù)界面的應(yīng)用程序,很難用過(guò)程來(lái)描述和實(shí)現(xiàn),開(kāi)發(fā)和維護(hù)也都很困難。

      (2)什么是面向?qū)ο蟪绦蛟O(shè)計(jì)方法?它有哪些優(yōu)點(diǎn)? 【問(wèn)題解答】

      面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,將程序設(shè)計(jì)為一組相互協(xié)作的對(duì)象而不是一組相互協(xié)作的函數(shù)。在程序中,屬性用數(shù)據(jù)表示,用來(lái)描述對(duì)象靜態(tài)特征; 行為用程序代碼實(shí)現(xiàn),用來(lái)描述對(duì)象動(dòng)態(tài)特征??梢?jiàn),在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,對(duì)象是數(shù)據(jù)結(jié)構(gòu)和算法的封裝體。對(duì)象之間存在各種聯(lián)系,它們之間通過(guò)消息進(jìn)行通信。程序可表示為:

      程序=對(duì)象+消息

      在面向?qū)ο蟪绦蛟O(shè)計(jì)中應(yīng)著重于類(lèi)的設(shè)計(jì)。類(lèi)正是面向?qū)ο笳Z(yǔ)言的基本程序模塊,通過(guò)類(lèi)的設(shè)計(jì)來(lái)完成實(shí)體的建模任務(wù)。類(lèi)通過(guò)一個(gè)簡(jiǎn)單的外部接口與外界發(fā)生關(guān)系。一個(gè)類(lèi)中的操作不會(huì)處理到另一個(gè)類(lèi)中的數(shù)據(jù),這樣程序模塊的獨(dú)立性、數(shù)據(jù)的安全性就有了良好的保障。程序的執(zhí)行取決于事件發(fā)生的順序,由順序產(chǎn)生的消息來(lái)驅(qū)動(dòng)程序的執(zhí)行。不必預(yù)先確定消息產(chǎn)生的順序,更符合客觀世界的實(shí)際。并且面向?qū)ο蟪绦蛟O(shè)計(jì)方法提供了軟件重用、解決大問(wèn)題和復(fù)雜問(wèn)題的有效途徑,具有抽象性、封裝性、繼承性和多態(tài)性等特點(diǎn)。

      (3)結(jié)構(gòu)化程序設(shè)計(jì)方法與面向?qū)ο蟪绦蛟O(shè)計(jì)方法在對(duì)待數(shù)據(jù)結(jié)構(gòu)和算法關(guān)系上有 什么不同? 【問(wèn)題解答】

      結(jié)構(gòu)化程序設(shè)計(jì)方法中,把數(shù)據(jù)結(jié)構(gòu)和算法分離為相互獨(dú)立的實(shí)體; 而在面向?qū)ο蟪绦蛟O(shè)計(jì)中,數(shù)據(jù)結(jié)構(gòu)和算法封裝在一起,結(jié)合成一個(gè)獨(dú)立的單位,即對(duì)象,并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)。對(duì)象的私有屬性只能由這個(gè)對(duì)象的行為來(lái)讀取和修改,與外部的聯(lián)系通過(guò)公有行為充當(dāng)外部接口。第 2 章

      從C到C++

      面向?qū)ο蟪绦蛟O(shè)計(jì)教程(C++語(yǔ)言描述)題解與課程設(shè)計(jì)指導(dǎo)

      第2章 從C到 C++

      一、名詞解釋

      引用內(nèi)聯(lián)函數(shù)重載函數(shù) 【問(wèn)題解答】

      所謂引用就是給對(duì)象取一個(gè)別名,使用該別名可以存取該對(duì)象。換句話(huà)說(shuō)是使新對(duì)象和原對(duì)象共用一個(gè)地址。

      內(nèi)聯(lián)函數(shù)是使用inline關(guān)鍵字聲明的函數(shù)。

      重載函數(shù)指在同一個(gè)作用域內(nèi)名字相同而參數(shù)不同的函數(shù)。重載函數(shù)通常用來(lái)對(duì)具有相似行為而數(shù)據(jù)類(lèi)型或數(shù)據(jù)個(gè)數(shù)不同的操作提供—個(gè)通用的名稱(chēng)。

      二、填空題

      (1)一般情況下,用C++語(yǔ)言編寫(xiě)的程序是由函數(shù)加上類(lèi)組成的。(2)C++有兩種注釋符號(hào),一種是//,另一種是 /*??*/。

      (3)使用C++風(fēng)格的輸入輸出,在程序中必須包含頭文件“iostream”。(4)cin是預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象,>>是輸入操作符,也稱(chēng)提取運(yùn)算符。(5)cout是預(yù)定義的標(biāo)準(zhǔn)輸出流對(duì)象,<<是輸出操作符,也稱(chēng)插入運(yùn)算符。(6)指針的值是它所指向那個(gè)對(duì)象的地址值。指針的類(lèi)型是它所指向?qū)ο蟮念?lèi)型。指針的內(nèi)容便是它所指向?qū)ο蟮闹怠?/p>

      (7)C++使用運(yùn)算符&來(lái)定義一個(gè)引用,對(duì)引用的存取都是對(duì)它所引用的對(duì)象的存取。(8)當(dāng)一個(gè)函數(shù)調(diào)用出現(xiàn)在函數(shù)定義之前時(shí),必須先用函數(shù)原型對(duì)函數(shù)進(jìn)行聲明。

      (9)C++有值傳遞和引用傳遞兩種參數(shù)傳遞機(jī)制。(10)使用關(guān)鍵字inline聲明的函數(shù)稱(chēng)為內(nèi)聯(lián)函數(shù)。(11)運(yùn)算符new用于進(jìn)行動(dòng)態(tài)內(nèi)存分配,運(yùn)算符delete用于釋放動(dòng)態(tài)分配的內(nèi)存。

      (12)下面程序的輸出結(jié)果為x=10,y=10;

      x=100,y=100。

      #include

      using namespace std;

      int main()

      {

      int x=10,&y=x;

      cout<<“x=”<

      int *p=&y;

      *p=100;

      cout<<“x=”<

      return 0;

      }

      三、選擇題(至少選一個(gè),可以多選)

      (1)在整型指針變量p2、p3的定義中,錯(cuò)誤的是(A)。A.int p1,*p2,p3;B.int*p2,p1,*p3;C.int p1,*p2=&p1,*p3;D.int*p2,p1,*p3=&p1;【結(jié)果分析】

      指針定義的具體格式如下所示:

      <類(lèi)型> *<指針名1>,*<指針名2>,?;

      (2)若有定義“double xx=3.14,*pp=&xx; ”,則*pp等價(jià)于(A.&xxB.*xxC.3.14D.xx 【結(jié)果分析】

      pp指向xx所在的內(nèi)存單元,這樣*pp和xx等價(jià)。(3)下面對(duì)引用的描述中(C)是錯(cuò)誤的。A.引用是某個(gè)變量或?qū)ο蟮膭e名 B.建立引用時(shí),要對(duì)它初始化)。C C.對(duì)引用初始化可以使用任意類(lèi)型的變量 D.引用與其代表的對(duì)象具有相同的地址 【結(jié)果分析】

      所謂引用就是給對(duì)象取一個(gè)別名,使用該別名可以存取該對(duì)象,所以對(duì)引用初始化必須使用同類(lèi)型的變量。

      (4)函數(shù)沒(méi)有返回值的時(shí)候,應(yīng)該選擇(A)的函數(shù)類(lèi)型。A.void B.int C.不確定 D.float(5)在函數(shù)的定義格式中,下面各組成部分中,(D)是可以省略的。A.函數(shù)名 B.函數(shù)體 C.返回值類(lèi)型 D.函數(shù)參數(shù) 【結(jié)果分析】

      函數(shù)的定義可以缺省形式參數(shù),此時(shí)稱(chēng)為無(wú)參函數(shù)。

      (6)對(duì)重載的函數(shù)來(lái)說(shuō),下面敘述不正確的是(D)。A.參數(shù)的類(lèi)型不同 B.參數(shù)的順序不同 C.參數(shù)的個(gè)數(shù)不同

      D.參數(shù)的個(gè)數(shù)、類(lèi)型、順序都相同,但函數(shù)的返回值類(lèi)型不同 【結(jié)果分析】

      對(duì)重載的函數(shù)來(lái)說(shuō),編譯系統(tǒng)將根據(jù)函數(shù)參數(shù)的類(lèi)型和個(gè)數(shù)來(lái)判斷使用哪一個(gè)函數(shù),所以重載函數(shù)參數(shù)的個(gè)數(shù)、類(lèi)型、順序不能都相同。

      (7)下列有關(guān)設(shè)置函數(shù)參數(shù)默認(rèn)值的描述中,(D)是正確的。A.對(duì)設(shè)置函數(shù)參數(shù)默認(rèn)值的順序沒(méi)有任何規(guī)定 B.函數(shù)具有一個(gè)參數(shù)時(shí)不能設(shè)置默認(rèn)值

      C.默認(rèn)參數(shù)要設(shè)置在函數(shù)的原型中,而不能設(shè)置在函數(shù)的定義語(yǔ)句中 D.設(shè)置默認(rèn)參數(shù)可使用表達(dá)式,但表達(dá)式中不可用局部變量 【結(jié)果分析】

      在C++中,在函數(shù)原型中可以為一個(gè)或多個(gè)參數(shù)指定默認(rèn)值。對(duì)函數(shù)參數(shù)設(shè)置默認(rèn)值要注意以下幾點(diǎn)?!羧魶](méi)有聲明函數(shù)原型,參數(shù)的默認(rèn)值可在函數(shù)定義的頭部進(jìn)行設(shè)置,否則必須在函數(shù)原型中進(jìn)行設(shè)置。

      ◆在一個(gè)指定了默認(rèn)值的參數(shù)右邊不能出現(xiàn)沒(méi)有指定默認(rèn)值的參數(shù)。◆設(shè)置默認(rèn)參數(shù)可使用表達(dá)式,但表達(dá)式中不可用局部變量。(8)下面說(shuō)法正確的是(BC)。A.所有的函數(shù)都可以說(shuō)明為內(nèi)聯(lián)函數(shù)

      B.具有循環(huán)語(yǔ)句、switch語(yǔ)句的函數(shù)不能說(shuō)明為內(nèi)聯(lián)函數(shù)

      C.使用內(nèi)聯(lián)函數(shù),可以加快程序執(zhí)行的速度,但會(huì)增加程序代碼的大小 D.使用內(nèi)聯(lián)函數(shù),可以減小程序代碼大小,但使程序執(zhí)行的速度減慢 【結(jié)果分析】

      內(nèi)聯(lián)函數(shù)主要是解決程序的運(yùn)行效率問(wèn)題。在程序編譯時(shí),編譯系統(tǒng)將程序中出現(xiàn)內(nèi)聯(lián)函數(shù)調(diào)用的地方用函數(shù)體進(jìn)行替換,進(jìn)而減少了程序運(yùn)行的時(shí)間,但會(huì)增加程序代碼的大小。它是以空間換取時(shí)間,因此內(nèi)聯(lián)函數(shù)適用于功能不太復(fù)雜,但要求被頻繁調(diào)用的函數(shù)。

      (9)一個(gè)函數(shù)功能不太復(fù)雜,但要求被頻繁調(diào)用,應(yīng)選用(A)。A.內(nèi)聯(lián)函數(shù) B.重載函數(shù) C.遞歸函數(shù) D.嵌套函數(shù)(10)C++對(duì)C語(yǔ)言做了很多改進(jìn),下列描述中使得C語(yǔ)言發(fā)生了質(zhì)變,即從面向過(guò)程變成面向?qū)ο蟮氖牵―)。A.增加了一些新的運(yùn)算符

      B.允許函數(shù)重載,并允許設(shè)置默認(rèn)參數(shù) C.規(guī)定函數(shù)說(shuō)明必須用原型 D.引進(jìn)了類(lèi)和對(duì)象的概念 【結(jié)果分析】

      面向?qū)ο?對(duì)象+類(lèi)+繼承+消息+多態(tài)

      四、判斷題

      (1)C++程序中,不得使用沒(méi)有定義或說(shuō)明的變量。(√)(2)使用const說(shuō)明常量時(shí),可以不必指出類(lèi)型。(×)【結(jié)果分析】

      如果用const 定義的是一個(gè)整型常量,則類(lèi)型說(shuō)明符int可以省略。(3)引用被創(chuàng)建時(shí)可以用任意變量進(jìn)行初始化。(×)【結(jié)果分析】

      對(duì)引用初始化必須使用同類(lèi)型的變量。

      (4)一個(gè)返回引用的調(diào)用函數(shù)可以作為左值。(√)(5)函數(shù)可以沒(méi)有參數(shù),也可以沒(méi)有返回值。(√)(6)沒(méi)有參數(shù)的兩個(gè)函數(shù)是不能重載的。(√)(7)函數(shù)可設(shè)置默認(rèn)參數(shù),但不允許將一個(gè)函數(shù)的所有參數(shù)都設(shè)置為默認(rèn)參數(shù)。(×)

      【結(jié)果分析】

      函數(shù)可設(shè)置默認(rèn)參數(shù),且允許將一個(gè)函數(shù)的所有參數(shù)都設(shè)置為默認(rèn)參數(shù)。(8)運(yùn)算符new分配的空間由運(yùn)算符delete釋放。(√)

      五、簡(jiǎn)答題

      (1)名字空間的用途是什么? 【問(wèn)題解答】

      名字空間用來(lái)防止命名的沖突。(2)引用有何用處? 【問(wèn)題解答】

      除了獨(dú)立引用外,在C++程序中,引用的主要用途是用作函數(shù)參數(shù)和函數(shù)的返回值。

      (3)比較值調(diào)用和引用調(diào)用的相同點(diǎn)與不同點(diǎn)。【問(wèn)題解答】 在值調(diào)用機(jī)制中,作為實(shí)參的表達(dá)式的值被復(fù)制到由對(duì)應(yīng)的形參名所標(biāo)識(shí)的一個(gè)對(duì)象中,作為形參的初始值。函數(shù)體對(duì)形參的訪問(wèn)、修改都是在這個(gè)標(biāo)識(shí)對(duì)象上操作的,與實(shí)參無(wú)關(guān),即數(shù)據(jù)的傳遞是單向的。

      使用引用作函數(shù)的形參時(shí),調(diào)用函數(shù)的實(shí)參要用變量名。實(shí)參傳遞給形參,相當(dāng)于在被調(diào)用函數(shù)中使用了實(shí)參的別名。于是,在被調(diào)用函數(shù)中對(duì)形參的操作實(shí)質(zhì)是對(duì)實(shí)參的直接操作,即數(shù)據(jù)的傳遞是雙向的。(4)內(nèi)聯(lián)函數(shù)有什么作用?它有哪些特點(diǎn)? 【問(wèn)題解答】

      內(nèi)聯(lián)函數(shù)是使用inline關(guān)鍵字聲明的函數(shù)。在程序編譯時(shí),編譯系統(tǒng)將程序中出現(xiàn)內(nèi)聯(lián)函數(shù)調(diào)用的地方用函數(shù)體進(jìn)行替換,進(jìn)而減少了程序運(yùn)行的時(shí)間。使用內(nèi)聯(lián)函數(shù)應(yīng)注意以下幾點(diǎn)?!暨f歸函數(shù)不能定義為內(nèi)聯(lián)函數(shù)。

      ◆內(nèi)聯(lián)函數(shù)一般適合于不含有switch和while等復(fù)雜的結(jié)構(gòu)且只有1~5條語(yǔ)句的小函數(shù),否則編譯系統(tǒng)將該函數(shù)視為普通函數(shù)。

      ◆內(nèi)聯(lián)函數(shù)只能先定義后使用,否則編譯系統(tǒng)也將該函數(shù)視為普通函數(shù)。◆對(duì)內(nèi)聯(lián)函數(shù)也不能進(jìn)行異常接口聲明。(5)函數(shù)原型中的參數(shù)名與函數(shù)定義中的參數(shù)名以及函數(shù)調(diào)用中的參數(shù)名必須一致嗎?

      【問(wèn)題解答】

      不必一致。所有的參數(shù)是根據(jù)位置和類(lèi)型而不是名字來(lái)區(qū)分的。(6)重載函數(shù)時(shí)通過(guò)什么來(lái)區(qū)分? 【問(wèn)題解答】

      編譯系統(tǒng)將根據(jù)函數(shù)參數(shù)的類(lèi)型和個(gè)數(shù)來(lái)判斷使用哪一個(gè)函數(shù)。

      六、程序分析題(寫(xiě)出程序的輸出結(jié)果,并分析結(jié)果)

      #include

      using namespace std;

      int main()

      {

      int num=50;

      int& ref=num;

      ref=ref+10;

      cout<<“num=”<

      num=num+40;

      cout<<“ref=”<

      return 0;}

      【輸出結(jié)果】

      num=60

      ref=100

      【問(wèn)題分析】

      本題主要考查引用的含義?!窘Y(jié)果分析】

      程序首先定義一個(gè)int類(lèi)型的對(duì)象num,并給它賦初始值50。然后又定義了一個(gè)int類(lèi)型的引用ref,并將它和num相聯(lián)系。這樣,無(wú)論是對(duì)num還是對(duì)ref進(jìn)行操作,實(shí)際上都是對(duì)那個(gè)一開(kāi)始放著50的物理單元的內(nèi)容進(jìn)行操作。

      七、程序設(shè)計(jì)題

      寫(xiě)出一個(gè)完整的C++程序,使用系統(tǒng)函數(shù)pow(x,y)計(jì)算xy的值,注意包含頭文件cmath?!締?wèn)題分析】

      本題主要考查簡(jiǎn)單的輸入輸出和標(biāo)準(zhǔn)庫(kù)函數(shù)的調(diào)用方法?!窘忸}思路】

      ① 由于要用到系統(tǒng)函數(shù)pow(x,y),所以要包含頭文件cmath。

      ② 要計(jì)算xy的值,首先必須知道x和y的值。為了程序的通用性,最好通過(guò)交互的方式輸入x和y的值。【參考程序】

      // xt2_1.cpp

      #include

      #include

      using namespace std;

      int main()

      {

      float x,y;

      cout<<“please input 2 floats to x,y:”;

      cin>>x>>y;

      float z=pow(x,y);

      cout<<“pow(”<

      return 0;} 【輸出結(jié)果】

      please input 2 floats to x,y:3.1 2

      pow(3.1,2)=9.61

      第 3 章

      類(lèi)與對(duì)象

      面向?qū)ο蟪绦蛟O(shè)計(jì)教程(C++語(yǔ)言描述)題解與課程設(shè)計(jì)指導(dǎo)

      第3章

      類(lèi) 與 對(duì) 象

      一、填空題(1)類(lèi)定義中關(guān)鍵字private、public和protected以后的成員的訪問(wèn)權(quán)限分別是私有、公有和保護(hù)。如果沒(méi)有使用關(guān)鍵字,則所有成員默認(rèn)定義為private權(quán)限。具有public訪問(wèn)權(quán)限的數(shù)據(jù)成員才能被不屬于該類(lèi)的函數(shù)所直接訪問(wèn)。(2)定義成員函數(shù)時(shí),運(yùn)算符“∷”是作用域運(yùn)算符,“MyClass∷”用于表明其后的成員函數(shù)是在“MyClass類(lèi)”中說(shuō)明的。

      (3)在程序運(yùn)行時(shí),通過(guò)為對(duì)象分配內(nèi)存來(lái)創(chuàng)建對(duì)象。在創(chuàng)建對(duì)象時(shí),使用類(lèi)作為樣板,故稱(chēng)對(duì)象為類(lèi)的實(shí)例。

      (4)假定Dc是一個(gè)類(lèi),則執(zhí)行“Dc a[10],b(2)”語(yǔ)句時(shí),系統(tǒng)自動(dòng)調(diào)用該類(lèi)構(gòu)造函數(shù)的次數(shù)為11?!窘Y(jié)果分析】

      創(chuàng)建10個(gè)數(shù)組元素需調(diào)用構(gòu)造函數(shù)10次,創(chuàng)建對(duì)象b需調(diào)用構(gòu)造函數(shù)1次,所以系統(tǒng)自動(dòng)調(diào)用該類(lèi)構(gòu)造函數(shù)的總次數(shù)為11。

      (5)對(duì)于任意一個(gè)類(lèi),析構(gòu)函數(shù)的個(gè)數(shù)最多為1個(gè)。

      (6)delete運(yùn)算符通常用于實(shí)現(xiàn)釋放該類(lèi)對(duì)象中指針成員所指向的動(dòng)態(tài)存儲(chǔ)空間的任務(wù)。(7)C++程序的內(nèi)存格局通常分為4個(gè)區(qū): 數(shù)據(jù)區(qū)、代碼區(qū)、棧區(qū)和堆區(qū)。(8)數(shù)據(jù)定義為全局變量,破壞了數(shù)據(jù)的 封裝性; 較好的解決辦法是將所要共享的數(shù)據(jù)定義為類(lèi)的 靜態(tài)成員。

      (9)靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)可由 任意訪問(wèn)權(quán)限許可的函數(shù)訪問(wèn)。(10)友元函數(shù)和 友元類(lèi)統(tǒng)稱(chēng)為友元。(11)友元的正確使用能提高程序的效率,但破壞了類(lèi)的封裝性和數(shù)據(jù)的隱蔽性。(12)若需要把一個(gè)類(lèi)A定義為一個(gè)類(lèi)B的友元類(lèi),則應(yīng)在類(lèi)B的定義中加入一條語(yǔ)句: friend class A。

      二、選擇題(至少選一個(gè),可以多選)(1)以下不屬于類(lèi)訪問(wèn)權(quán)限的是(B)。A.public B.staticC.protectedD.private 【結(jié)果分析】

      類(lèi)的訪問(wèn)權(quán)限有public、protected 和private。(2)有關(guān)類(lèi)的說(shuō)法不正確的是(BC)。A.類(lèi)是一種用戶(hù)自定義的數(shù)據(jù)類(lèi)型

      B.只有類(lèi)的成員函數(shù)才能訪問(wèn)類(lèi)的私有數(shù)據(jù)成員

      C.在類(lèi)中,如不做權(quán)限說(shuō)明,所有的數(shù)據(jù)成員都是公有的 D.在類(lèi)中,如不做權(quán)限說(shuō)明,所有的數(shù)據(jù)成員都是私有的 【結(jié)果分析】

      類(lèi)是一種用戶(hù)自定義的數(shù)據(jù)類(lèi)型,類(lèi)中成員均具有一種訪問(wèn)權(quán)限。關(guān)鍵字public、protected 和private以后的成員的訪問(wèn)權(quán)限分別是公有、保護(hù)和私有的,所有成員默認(rèn)定義為private的。

      私有成員是被隱藏的數(shù)據(jù),只有該類(lèi)的成員函數(shù)或友元函數(shù)才可以訪問(wèn)它。(3)在類(lèi)定義的外部,可以被任意函數(shù)訪問(wèn)的成員有(C)。A.所有類(lèi)成員 B.private或protected的類(lèi)成員 C.public的類(lèi)成員 D.public或private的類(lèi)成員 【結(jié)果分析】

      類(lèi)是一種用戶(hù)自定義的數(shù)據(jù)類(lèi)型,類(lèi)中成員均具有一種訪問(wèn)權(quán)限。公有成員定義了類(lèi)的外部接口。私有成員是被隱藏的數(shù)據(jù),只有該類(lèi)的成員函數(shù)或友元函數(shù)才可以引用它。保護(hù)成員具有公有成員和私有成員的雙重性質(zhì),可以被該類(lèi)或派生類(lèi)的成員函數(shù)或友元函數(shù)引用??梢?jiàn)在類(lèi)定義的外部,可以被任意函數(shù)訪問(wèn)的成員是public的類(lèi)成員。

      (4)關(guān)于類(lèi)和對(duì)象的說(shuō)法(C)是錯(cuò)誤的。A.對(duì)象是類(lèi)的一個(gè)實(shí)例

      B.任何一個(gè)對(duì)象只能屬于一個(gè)具體的類(lèi) C.一個(gè)類(lèi)只能有一個(gè)對(duì)象

      D.類(lèi)與對(duì)象的關(guān)系和數(shù)據(jù)類(lèi)型與變量的關(guān)系相似 【結(jié)果分析】

      C++語(yǔ)言的類(lèi)就是一種用戶(hù)自己定義的數(shù)據(jù)類(lèi)型,類(lèi)和對(duì)象的關(guān)系就相當(dāng)于基本數(shù)據(jù)類(lèi)型與它的變量的關(guān)系,所以任何一個(gè)對(duì)象只能屬于一個(gè)具體的類(lèi),但一個(gè)類(lèi)可以有多個(gè)對(duì)象。(5)設(shè)MClass是一個(gè)類(lèi),dd是它的一個(gè)對(duì)象,pp是指向dd的指針,cc是dd的引用,則對(duì)成員的訪問(wèn),對(duì)象dd可以通過(guò)(B)進(jìn)行,指針pp可以通過(guò)(D)進(jìn)行,引用cc可以通過(guò)(B)進(jìn)行。

      A.∷ B..C.& D.->(6)關(guān)于成員函數(shù)的說(shuō)法中不正確的是(C)。A.成員函數(shù)可以無(wú)返回值 B.成員函數(shù)可以重載 C.成員函數(shù)一定是內(nèi)聯(lián)函數(shù)

      D.成員函數(shù)可以設(shè)定參數(shù)的默認(rèn)值 【結(jié)果分析】

      與普通函數(shù)不同的是,成員函數(shù)是屬于某個(gè)類(lèi)的。成員函數(shù)的實(shí)現(xiàn),可以放在類(lèi)體內(nèi),也可以放在類(lèi)體外。在類(lèi)體外實(shí)現(xiàn)的成員函數(shù)不再是內(nèi)聯(lián)函數(shù)。(7)下面對(duì)構(gòu)造函數(shù)的不正確描述是(B)。A.系統(tǒng)可以提供默認(rèn)的構(gòu)造函數(shù)

      B.構(gòu)造函數(shù)可以有參數(shù),所以也可以有返回值 C.構(gòu)造函數(shù)可以重載

      D.構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù) 【結(jié)果分析】

      構(gòu)造函數(shù)不能指定返回類(lèi)型,即使是void類(lèi)型也不可以,當(dāng)然不可能有返回值。(8)假定A是一個(gè)類(lèi),那么執(zhí)行語(yǔ)句“A a,b(3),*p; ”調(diào)用了(B)次構(gòu)造函數(shù)。

      A.1 B.2 C.3 D.4 【結(jié)果分析】

      聲明指針是不會(huì)調(diào)用構(gòu)造函數(shù)的。

      (9)下面對(duì)析構(gòu)函數(shù)的正確描述是(AC)。A.系統(tǒng)可以提供默認(rèn)的析構(gòu)函數(shù) B.析構(gòu)函數(shù)必須由用戶(hù)定義 C.析構(gòu)函數(shù)沒(méi)有參數(shù)

      D.析構(gòu)函數(shù)可以設(shè)置默認(rèn)參數(shù) 【結(jié)果分析】

      析構(gòu)函數(shù)的作用是在對(duì)象消失時(shí)執(zhí)行一項(xiàng)清理任務(wù)。如果一個(gè)類(lèi)中沒(méi)有定義析構(gòu)函數(shù),系統(tǒng)將自動(dòng)生成一個(gè)默認(rèn)析構(gòu)函數(shù)。析構(gòu)函數(shù)沒(méi)有參數(shù),當(dāng)然不可能設(shè)置默認(rèn)參數(shù)。

      (10)類(lèi)的析構(gòu)函數(shù)是(D)時(shí)被調(diào)用的。

      A.類(lèi)創(chuàng)建 B.創(chuàng)建對(duì)象 C.引用對(duì)象 D.釋放對(duì)象

      (11)創(chuàng)建一個(gè)類(lèi)的對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用(B); 撤銷(xiāo)對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用(C)。

      A.成員函數(shù) B.構(gòu)造函數(shù) C.析構(gòu)函數(shù) D.復(fù)制構(gòu)造函數(shù)(12)通常拷貝構(gòu)造函數(shù)的參數(shù)是(C)。

      A.某個(gè)對(duì)象名 B.某個(gè)對(duì)象的成員名 C.某個(gè)對(duì)象的引用名 D.某個(gè)對(duì)象的指針名(13)關(guān)于this指針的說(shuō)法正確的是(B)。

      A.this指針必須顯式說(shuō)明B.當(dāng)創(chuàng)建一個(gè)對(duì)象后,this指針就指向該對(duì)象 C.成員函數(shù)擁有this指針D.靜態(tài)成員函數(shù)擁有this指針?!窘Y(jié)果分析】

      this指針是由C++編譯器自動(dòng)產(chǎn)生且較常用的一個(gè)隱含對(duì)象指針,它不能被顯式聲明。當(dāng)創(chuàng)建一個(gè)對(duì)象時(shí),this指針就初始化指向該對(duì)象。但只有非靜態(tài)成員函數(shù)才擁有this指針,并通過(guò)該指針來(lái)處理對(duì)象。(14)下列關(guān)于子對(duì)象的描述中,(B)是錯(cuò)誤的。A.子對(duì)象是類(lèi)的一種數(shù)據(jù)成員,它是另一個(gè)類(lèi)的對(duì)象 B.子對(duì)象可以是自身類(lèi)的對(duì)象

      C.對(duì)子對(duì)象的初始化要包含在該類(lèi)的構(gòu)造函數(shù)中 D.一個(gè)類(lèi)中能含有多個(gè)子對(duì)象作其成員 【結(jié)果分析】

      子對(duì)象不可以是自身類(lèi)的對(duì)象。

      (15)對(duì)new運(yùn)算符的下列描述中,(B)是錯(cuò)誤的。A.它可以動(dòng)態(tài)創(chuàng)建對(duì)象和對(duì)象數(shù)組 B.用它創(chuàng)建對(duì)象數(shù)組時(shí)必須指定初始值 C.用它創(chuàng)建對(duì)象時(shí)要調(diào)用構(gòu)造函數(shù)

      D.用它創(chuàng)建的對(duì)象數(shù)組可以使用運(yùn)算符delete來(lái)一次釋放 【結(jié)果分析】

      使用運(yùn)算符new創(chuàng)建對(duì)象數(shù)組的格式如下:

      new <類(lèi)型說(shuō)明符> [<算術(shù)表達(dá)式>]

      其中,<算術(shù)表達(dá)式>給出數(shù)組的大小,后面不能再跟構(gòu)造函數(shù)參數(shù),所以用它創(chuàng)建對(duì)象數(shù)組時(shí)不能指定初始值。

      (16)對(duì)delete運(yùn)算符的下列描述中,(D)是錯(cuò)誤的。A.用它可以釋放用new運(yùn)算符創(chuàng)建的對(duì)象和對(duì)象數(shù)組

      B.用它釋放一個(gè)對(duì)象時(shí),它作用于一個(gè)new所返回的指針

      C.用它釋放一個(gè)對(duì)象數(shù)組時(shí),它作用的指針名前須加下標(biāo)運(yùn)算符[ ] D.用它可一次釋放用new運(yùn)算符創(chuàng)建的多個(gè)對(duì)象 【結(jié)果分析】

      用delete一次只能釋放用new創(chuàng)建的1個(gè)對(duì)象,但可釋放一個(gè)對(duì)象數(shù)組。(17)關(guān)于靜態(tài)數(shù)據(jù)成員,下面敘述不正確的是(C)。A.使用靜態(tài)數(shù)據(jù)成員,實(shí)際上是為了消除全局變量

      B.可以使用“對(duì)象名.靜態(tài)成員”或者“類(lèi)名∷靜態(tài)成員”來(lái)訪問(wèn)靜態(tài)數(shù)據(jù)成員

      C.靜態(tài)數(shù)據(jù)成員只能在靜態(tài)成員函數(shù)中引用 D.所有對(duì)象的靜態(tài)數(shù)據(jù)成員占用同一內(nèi)存單元 【結(jié)果分析】

      靜態(tài)數(shù)據(jù)成員可以在靜態(tài)成員函數(shù)中引用,也可以在非靜態(tài)成員函數(shù)中引用。(18)對(duì)靜態(tài)數(shù)據(jù)成員的不正確描述是(CD)。A.靜態(tài)成員不屬于對(duì)象,是類(lèi)的共享成員 B.靜態(tài)數(shù)據(jù)成員要在類(lèi)外定義和初始化

      C.調(diào)用靜態(tài)成員函數(shù)時(shí)要通過(guò)類(lèi)或?qū)ο蠹せ?,所以靜態(tài)成員函數(shù)擁有this指針 D.只有靜態(tài)成員函數(shù)可以操作靜態(tài)數(shù)據(jù)成員 【結(jié)果分析】 this指針是一個(gè)局部量,局部于某個(gè)對(duì)象,而靜態(tài)成員函數(shù)是屬于整個(gè)類(lèi)而不是某個(gè)對(duì)象,它沒(méi)有this指針。靜態(tài)成員函數(shù)和非靜態(tài)成員函數(shù)均可操作靜態(tài)數(shù)據(jù)成員。

      (19)下面的選項(xiàng)中,靜態(tài)成員函數(shù)不能直接訪問(wèn)的是(D)。A.靜態(tài)數(shù)據(jù)成員 B.靜態(tài)成員函數(shù) C.類(lèi)以外的函數(shù)和數(shù)據(jù) D.非靜態(tài)數(shù)據(jù)成員 【結(jié)果分析】

      由于靜態(tài)成員函數(shù)沒(méi)有this指針,它只能直接訪問(wèn)該類(lèi)的靜態(tài)數(shù)據(jù)成員、靜態(tài)成員函數(shù)和類(lèi)以外的函數(shù)和數(shù)據(jù),訪問(wèn)類(lèi)中的非靜態(tài)數(shù)據(jù)成員必須通過(guò)參數(shù)傳遞方式得到對(duì)象名,然后通過(guò)對(duì)象名來(lái)訪問(wèn)。

      (20)在類(lèi)的定義中,引入友元的原因是(A)。

      A.提高效率 B.深化使用類(lèi)的封裝性 C.提高程序的可讀性 D.提高數(shù)據(jù)的隱蔽性 【結(jié)果分析】

      友元的作用主要是為了提高效率和方便編程,但友元破壞了類(lèi)的封裝性和隱蔽性,使用時(shí)要權(quán)衡利弊。

      (21)友元類(lèi)的聲明方法是(A)。

      A.friend class<類(lèi)名>; B.youyuan class<類(lèi)名>; C.class friend<類(lèi)名>; D.friends class<類(lèi)名>;(22)下面對(duì)友元的錯(cuò)誤描述是(D)。A.關(guān)鍵字friend用于聲明友元

      B.一個(gè)類(lèi)中的成員函數(shù)可以是另一個(gè)類(lèi)的友元 C.友元函數(shù)訪問(wèn)對(duì)象的成員不受訪問(wèn)特性影響 D.友元函數(shù)通過(guò)this指針訪問(wèn)對(duì)象成員 【結(jié)果分析】

      友元函數(shù)是一個(gè)放在類(lèi)中的普通函數(shù),它沒(méi)有this指針。(23)下面選項(xiàng)中,(C)不是類(lèi)的成員函數(shù)。

      A.構(gòu)造函數(shù) B.析構(gòu)函數(shù) C.友元函數(shù) D.拷貝構(gòu)造函數(shù)

      三、簡(jiǎn)答題

      (1)類(lèi)與對(duì)象有什么關(guān)系? 【問(wèn)題解答】

      類(lèi)是一種用戶(hù)自己定義的數(shù)據(jù)類(lèi)型,和其他數(shù)據(jù)類(lèi)型不同的是,組成這種類(lèi)型的不僅可以有數(shù)據(jù),而且可以有對(duì)數(shù)據(jù)進(jìn)行操作的函數(shù)。程序員可以使用這個(gè)新類(lèi)型在程序中聲明新的變量,具有類(lèi)類(lèi)型的變量稱(chēng)為對(duì)象。創(chuàng)建對(duì)象時(shí),類(lèi)被用做樣板,對(duì)象稱(chēng)為類(lèi)的實(shí)例。

      (2)類(lèi)定義的一般形式是什么?其成員有哪幾種訪問(wèn)權(quán)限? 【問(wèn)題解答】

      定義類(lèi)一般形式為:

      class類(lèi)名{

      public:

      <公有數(shù)據(jù)和函數(shù)>

      protected:

      <保護(hù)數(shù)據(jù)和函數(shù)>

      private:

      <私有數(shù)據(jù)和函數(shù)> };

      訪問(wèn)權(quán)限共有3種: 分別是公有(public)、保護(hù)(protected)和私有(private)。(3)類(lèi)的實(shí)例化是指創(chuàng)建類(lèi)的對(duì)象還是定義類(lèi)? 【問(wèn)題解答】

      指創(chuàng)建類(lèi)的對(duì)象。

      (4)什么是this指針?它的主要作用是什么? 【問(wèn)題解答】

      this指針是C++語(yǔ)言為成員函數(shù)提供的一個(gè)隱含對(duì)象指針,它不能被顯式聲明。this指針是一個(gè)局部量,局部于某個(gè)對(duì)象。不同的對(duì)象調(diào)用同一個(gè)成員函數(shù)時(shí),編譯器根據(jù)this指針來(lái)確定應(yīng)該引用哪一個(gè)對(duì)象的數(shù)據(jù)成員。(5)什么叫做拷貝構(gòu)造函數(shù)?拷貝構(gòu)造函數(shù)何時(shí)被調(diào)用? 【問(wèn)題解答】

      拷貝構(gòu)造函數(shù)是一種特殊的構(gòu)造函數(shù),它的作用是用一個(gè)已經(jīng)存在的對(duì)象去初始化另一個(gè)對(duì)象。為了保證所引用的對(duì)象不被修改,通常把引用參數(shù)聲明為const參數(shù)。

      在以下3種情況下,拷貝構(gòu)造函數(shù)都會(huì)被自動(dòng)調(diào)用: ◆當(dāng)用類(lèi)的一個(gè)對(duì)象去初始化該類(lèi)的另一個(gè)對(duì)象時(shí); ◆當(dāng)函數(shù)的形參是類(lèi)的對(duì)象,進(jìn)行形參和實(shí)參結(jié)合時(shí);

      ◆當(dāng)函數(shù)的返回值是類(lèi)的對(duì)象,函數(shù)執(zhí)行完成返回調(diào)用者時(shí)。

      四、程序分析題(寫(xiě)出程序的輸出結(jié)果,并分析結(jié)果)(1)

      #include

      using namespace std;

      class Test {

      private:

      int num;public:

      Test();// 默認(rèn)構(gòu)造函數(shù)

      Test(int n);// 帶一個(gè)參數(shù)構(gòu)造函數(shù)

      };

      Test∷Test()

      {

      cout<<“Init defa”<

      num=0;}

      Test∷Test(int n)

      {

      cout<<“Init”<<“ ”<

      num=n;}

      int main()

      {

      Test x[2];// 語(yǔ)句1

      Test y(15);// 語(yǔ)句2

      return 0;}

      【輸出結(jié)果】

      Init defa Init defa

      Init 15

      【問(wèn)題分析】

      本題主要考查構(gòu)造函數(shù)的調(diào)用時(shí)機(jī)和構(gòu)造函數(shù)的匹配問(wèn)題?!疽c(diǎn)提示】

      構(gòu)造函數(shù)在創(chuàng)建對(duì)象時(shí)被自動(dòng)調(diào)用,具體調(diào)用哪個(gè)構(gòu)造函數(shù)將由編譯系統(tǒng)根據(jù)重載函數(shù)的匹配原則來(lái)確定。【結(jié)果分析】

      ① 程序聲明了2個(gè)對(duì)象x和y,類(lèi)中有2個(gè)構(gòu)造函數(shù)。

      ② 程序首先執(zhí)行語(yǔ)句1,創(chuàng)建對(duì)象x,調(diào)用默認(rèn)構(gòu)造函數(shù)。由于對(duì)象x是對(duì)象數(shù)組,每個(gè)數(shù)組元素被創(chuàng)建時(shí)都要調(diào)用構(gòu)造函數(shù),所以默認(rèn)構(gòu)造函數(shù)被調(diào)用了2次,輸出第1、2行結(jié)果。程序接著執(zhí)行語(yǔ)句2,創(chuàng)建對(duì)象y,調(diào)用帶一個(gè)參數(shù)的構(gòu)造函數(shù),輸出第3行結(jié)果。(2)

      #include

      using namespace std;

      class Xx {

      private:

      int num;

      public:

      Xx(int x){num=x;} // 構(gòu)造函數(shù)

      ~Xx(){cout<<“dst ”<

      };

      int main()

      {

      Xx w(5);// 語(yǔ)句1

      cout<<“Exit main”<

      return 0;}

      【輸出結(jié)果】

      Exit main

      dst 5

      【問(wèn)題分析】

      本題主要考查析構(gòu)函數(shù)的調(diào)用時(shí)機(jī)?!疽c(diǎn)提示】

      析構(gòu)函數(shù)在釋放對(duì)象時(shí)被自動(dòng)調(diào)用?!窘Y(jié)果分析】

      ① 程序聲明了一個(gè)對(duì)象w。

      ② 程序首先執(zhí)行語(yǔ)句1,創(chuàng)建對(duì)象w,調(diào)用構(gòu)造函數(shù),num得到初值5。程序接著執(zhí)行語(yǔ)句2,輸出第1行結(jié)果。當(dāng)程序結(jié)束時(shí),釋放對(duì)象w,析構(gòu)函數(shù)被調(diào)用,輸出第2行結(jié)果。

      (3)將例3.10中的Whole類(lèi)如下修改,其他部分不變,寫(xiě)出輸出結(jié)果。

      class Whole {

      public:

      Whole(int i);// Whole的有參構(gòu)造函數(shù)

      Whole(){};// Whole的無(wú)參構(gòu)造函數(shù)

      ~Whole();// Whole的析構(gòu)函數(shù)

      private:

      Part p1;// 子對(duì)象1

      Part p2;// 子對(duì)象2

      Part p3;// 子對(duì)象3 };Whole∷Whole(int i):p2(i),p1()

      {

      cout<<“Constructor of Whole”<

      Whole∷~Whole()

      {

      cout<<“Destructor of Whole”<

      【輸出結(jié)果】

      Default constructor of Part

      Constructor of Part,3

      Default constructor of Part

      Constructor of Whole

      Destructor of Whole

      Destructor of Part,0

      Destructor of Part,3

      Destructor of Part,0

      【問(wèn)題分析】

      本題主要考查子對(duì)象初始化的方法和含有子對(duì)象時(shí)構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序。

      【要點(diǎn)提示】

      ◆當(dāng)建立X類(lèi)的對(duì)象時(shí),先調(diào)用子對(duì)象的構(gòu)造函數(shù),初始化子對(duì)象,然后才執(zhí)行X類(lèi)的構(gòu)造函數(shù),初始化X類(lèi)中的其他成員。

      ◆對(duì)子對(duì)象構(gòu)造函數(shù)的調(diào)用順序取決于這些子對(duì)象在類(lèi)中的說(shuō)明順序,與它們?cè)诔蓡T初始化列表中給出的順序無(wú)關(guān)。

      ◆如果X類(lèi)的構(gòu)造函數(shù)沒(méi)有給出成員初始化列表,表明子對(duì)象將使用默認(rèn)構(gòu)造函數(shù)進(jìn)行初始化?!粑鰳?gòu)函數(shù)的調(diào)用順序與構(gòu)造函數(shù)的調(diào)用順序正好相反?!窘Y(jié)果分析】

      程序的Whole類(lèi)中出現(xiàn)了類(lèi)Part的3個(gè)對(duì)象p1、p2和p3,作為該類(lèi)的數(shù)據(jù)成員,則p1、p2和p3被稱(chēng)為子對(duì)象。當(dāng)建立Whole類(lèi)的對(duì)象w時(shí),子對(duì)象p1、p2和p3被建立,相應(yīng)的構(gòu)造函數(shù)被執(zhí)行。由于p1在Whole類(lèi)中先說(shuō)明,所以先執(zhí)行它所使用的構(gòu)造函數(shù),即類(lèi)Part的默認(rèn)構(gòu)造函數(shù),接著p2執(zhí)行它所使用的有參構(gòu)造函數(shù),緊接著初始化p3,由于Whole類(lèi)構(gòu)造函數(shù)的成員初始化列表中沒(méi)有子對(duì)象p3進(jìn)行初始化的選項(xiàng),所以執(zhí)行類(lèi)Part的默認(rèn)構(gòu)造函數(shù),當(dāng)所有子對(duì)象被構(gòu)造完之后,對(duì)象w的構(gòu)造函數(shù)才被執(zhí)行,從而得到前4行輸出結(jié)果,而后4行是執(zhí)行相應(yīng)析構(gòu)函數(shù)的輸出結(jié)果。(4)

      #include

      using namespace std;

      class Book {

      public:

      Book(int w);

      static int sumnum;

      private:

      int num;};

      Book∷Book(int w)

      {

      num=w;

      sumnum-=w;}

      int Book∷sumnum=120;// 語(yǔ)句1 int main()

      {

      Book b1(20);// 語(yǔ)句2

      Book b2(70);// 語(yǔ)句3

      cout<

      return 0;}

      【輸出結(jié)果】

      【問(wèn)題分析】

      本題主要考查“在類(lèi)的范圍內(nèi)所有對(duì)象共享靜態(tài)成員的數(shù)據(jù)”的含義?!窘Y(jié)果分析】

      程序中語(yǔ)句1對(duì)靜態(tài)成員sumnum進(jìn)行初始化,sumnum得到初值120。執(zhí)行語(yǔ)句2時(shí),調(diào)用構(gòu)造函數(shù),sumnum變?yōu)?00。接著語(yǔ)句3,再調(diào)用構(gòu)造函數(shù),sumnum變?yōu)?0。

      五、程序設(shè)計(jì)題

      (1)聲明一個(gè)Circle類(lèi),有數(shù)據(jù)成員radius(半徑)、成員函數(shù)area(),計(jì)算圓的面積,構(gòu)造一個(gè)Circle的對(duì)象進(jìn)行測(cè)試?!締?wèn)題分析】

      本題主要考查類(lèi)定義的形式、對(duì)象成員訪問(wèn)和對(duì)象初始化的方法。要求理解類(lèi)和構(gòu)造函數(shù)的真正含義,特別注意如何將客觀事物的屬性和行為抽象為類(lèi)的成員?!窘忸}思路】

      ① 題目中已給出了類(lèi)的基本部分,需要增加一個(gè)構(gòu)造函數(shù)來(lái)初始化數(shù)據(jù)成員radius。

      ② 為了程序的通用性,圓的半徑由鍵盤(pán)輸入?!緟⒖汲绦颉?/p>

      // xt3_1.cpp

      #include

      第五篇:Javaweb復(fù)習(xí)題(帶答案)

      Javaweb復(fù)習(xí)題

      1.什么是超文本協(xié)議?一般JSP應(yīng)用程序服務(wù)器(WEB服務(wù)器)使用的發(fā)布端口是多少?

      超文本協(xié)議(HTTP)Hypertext Transfer Protocol:進(jìn)行超文本和超媒體數(shù)據(jù)的傳輸.發(fā)布端口為8080

      2.Eclipse一般通過(guò)什么來(lái)進(jìn)行功能的擴(kuò)展。插件 3.JSP有哪三種腳本元素

      JSP中的腳本元素主要包括三個(gè)主要部分:--腳本段:<%This is a scriptlet%>--聲明:<%!This is a declaration%>--表達(dá)式:<%=This is a expression%>

      4.JSP的內(nèi)置對(duì)象有哪九個(gè)?

      以上的9個(gè)內(nèi)置對(duì)象中比較常用的是pageContext、request、response、session、application這5個(gè)。(有關(guān)內(nèi)置對(duì)象的使用詳細(xì)看一下課本或PPT)5.WEB-INF文件夾下進(jìn)行SERVLET配置的文件是什么?web.xml 6.JSP中 request對(duì)象采用什么方法獲取表單提交信息?

      單一的參數(shù)都可以使用getParameter()接收,而一組參數(shù)(同名參數(shù))要用getParameterValues()接收。

      在表單控件中,像文本框(text)、單選按鈕(radio)、密碼框(password)、隱藏域(hidden)等,一般都會(huì)使用getParameter()方法進(jìn)行接收,因?yàn)檫@些控件在使用時(shí)參數(shù)的名稱(chēng)都只有一個(gè)不會(huì)重復(fù);而像復(fù)選框(checked),一般參數(shù)的名稱(chēng)都是重復(fù)的,是一組參數(shù),所以只能使用getParameterValues()方法接收,如果不小心使用了getParameter()方法,則只會(huì)接收第一個(gè)選中的內(nèi)容。

      7.客戶(hù)端向服務(wù)端提交數(shù)據(jù)的方法有哪兩種?

      get請(qǐng)求、post請(qǐng)求 8.服務(wù)器默認(rèn)的編碼為什么?常見(jiàn)的中文編碼為什么?

      服務(wù)器默認(rèn)的編碼:ISO8859-1 常見(jiàn)的中文編碼:GBK <%@ page contentType=“text/html;charset=GBK”%> <% request.setCharacterEncoding(“GBK”);// 按中文接收

      String str = request.getParameter(“info”);// 接收表單參數(shù) %>

      參數(shù)內(nèi)容:<%=str%>

      9.JSP一般通過(guò)什么連接數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)連接類(lèi)是什么?什么是SQL語(yǔ)句類(lèi),什么是查詢(xún)結(jié)果集類(lèi)。

      JSP通過(guò)JDBC(Java DataBase Connectivity、Java數(shù)據(jù)庫(kù)連接技術(shù)的簡(jiǎn)稱(chēng))技術(shù)操作數(shù)據(jù)庫(kù)

      查詢(xún)結(jié)果集類(lèi)ResultSet

      10.SERVLET本身是個(gè)JAVA類(lèi),必須放置在那個(gè)文件夾下?

      Servlet本身就是個(gè)Java類(lèi),所以必須放在WEB-INF/classes子文件夾下 11.HTML語(yǔ)言中的各種常用標(biāo)簽有哪些?

      、、、

      下載面向?qū)ο蠹夹g(shù)引論(復(fù)習(xí)題帶術(shù)語(yǔ)題答案)word格式文檔
      下載面向?qū)ο蠹夹g(shù)引論(復(fù)習(xí)題帶術(shù)語(yǔ)題答案).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        內(nèi)科復(fù)習(xí)題帶答案

        2016年醫(yī)師定期考核內(nèi)科專(zhuān)業(yè)復(fù)習(xí)題 單選題: 1.心絞痛發(fā)生的典型部位是 A.胸骨體上段或中段之后可波及心前區(qū) B.胸骨體下段之后 C.心尖區(qū) D.肩左臂內(nèi)側(cè)達(dá)無(wú)名 E.橫貫前胸......

        兒童文學(xué)復(fù)習(xí)題(帶答案)

        兒童文學(xué)復(fù)習(xí)題(帶答案) 一、單選題 答案:B 1、廣義兒童文學(xué)的三個(gè)層次是A.嬰兒文學(xué)、幼兒文學(xué)、兒童文學(xué)B.嬰幼兒文學(xué)、兒童文學(xué)、少年文學(xué) C.嬰兒文學(xué)、兒童文學(xué)、青春期文學(xué)......

        Java面向?qū)ο蟪绦蛟O(shè)計(jì)課后答案(精選5篇)

        Java面向?qū)ο蟪绦蛟O(shè)計(jì)課后答案 Java面向?qū)ο蟪绦蛟O(shè)計(jì) 清華大學(xué)出版社 (編著 耿祥義 張躍平)習(xí)題解答 建議使用文檔結(jié)構(gòu)圖 (選擇Word菜單→視圖→文檔結(jié)構(gòu)圖)習(xí)題1 1.James Go......

        面向?qū)ο蠹夹g(shù)與UML課程設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書(shū)

        《面向?qū)ο蠹夹g(shù)與UML課程設(shè)計(jì)》實(shí)驗(yàn)指導(dǎo)書(shū) 實(shí)驗(yàn)一 系統(tǒng)的用例模型 實(shí)驗(yàn)名稱(chēng):系統(tǒng)的用例模型 實(shí)驗(yàn)類(lèi)型: 設(shè)計(jì)性實(shí)驗(yàn) 學(xué)時(shí):一天 一、實(shí)驗(yàn)?zāi)康?1.熟悉用例圖的基本功能和使用方法......

        電子商務(wù)復(fù)習(xí)題2(帶答案)

        判斷題 1.網(wǎng)絡(luò)營(yíng)銷(xiāo)作為新的營(yíng)銷(xiāo)理念和策略,將完全取代傳統(tǒng)營(yíng)銷(xiāo)。(×) 2.進(jìn)行在線(xiàn)市場(chǎng)調(diào)查時(shí),問(wèn)卷調(diào)查機(jī)構(gòu)可以通過(guò)合理設(shè)置獎(jiǎng)項(xiàng)來(lái)減少不真實(shí)的問(wèn)卷。(√) 3.因特網(wǎng)無(wú)限制樣本問(wèn)題......

        古詩(shī)題帶答案

        三、根據(jù)提供的情境寫(xiě)詩(shī)句。 (1)“百川東到海,何時(shí)復(fù)西歸。”是啊,燕子去了,有再來(lái)的時(shí)候;楊柳枯了,有再青的時(shí)候;桃花謝了,有再開(kāi)的時(shí)候。我們的日子呢,卻是一去不復(fù)返。不抓住今天,永......

        黨章200題帶答案

        黨章知識(shí)200題 一、單選題(100道) 1、黨章共11章____條。A A.53 B.56 C.58 D.60 2、中國(guó)共產(chǎn)黨是中國(guó)工人階級(jí)的先鋒隊(duì),同時(shí)是____的先鋒隊(duì),是中國(guó)特色社會(huì)主義事業(yè)的領(lǐng)導(dǎo)核心,......

        面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì)試卷與答案1

        請(qǐng)大家?guī)兔Π堰@句話(huà)設(shè)為QQ簽名,“淘熱門(mén) http://004km.cn , 精選淘寶熱門(mén)商品” 面向?qū)ο蠓治雠c設(shè)計(jì)試題B卷 一、單項(xiàng)選擇題 ( 在每小題的四個(gè)備選答案中,選出一......