【網(wǎng)絡(luò)課件】宜賓學(xué)院-第十一章 第十二章 面向?qū)ο笤O(shè)計與實現(xiàn)_第1頁
【網(wǎng)絡(luò)課件】宜賓學(xué)院-第十一章 第十二章 面向?qū)ο笤O(shè)計與實現(xiàn)_第2頁
【網(wǎng)絡(luò)課件】宜賓學(xué)院-第十一章 第十二章 面向?qū)ο笤O(shè)計與實現(xiàn)_第3頁
【網(wǎng)絡(luò)課件】宜賓學(xué)院-第十一章 第十二章 面向?qū)ο笤O(shè)計與實現(xiàn)_第4頁
【網(wǎng)絡(luò)課件】宜賓學(xué)院-第十一章 第十二章 面向?qū)ο笤O(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩62頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

軟件工程 第十一章面向?qū)ο笤O(shè)計第十二章面向?qū)ο髮崿F(xiàn) 2 11 1面向?qū)ο笤O(shè)計的準則11 2啟發(fā)規(guī)則11 3軟件重用11 4系統(tǒng)分解11 5設(shè)計問題域子系統(tǒng)11 6設(shè)計人機交互子系統(tǒng)11 7設(shè)計任務(wù)管理子系統(tǒng)11 8設(shè)計數(shù)據(jù)管理子系統(tǒng)11 9設(shè)計類中的服務(wù) 3 面向?qū)ο笤O(shè)計是把分析階段得到的需求轉(zhuǎn)變成符合成本和質(zhì)量要求的 抽象的系統(tǒng)實現(xiàn)方案的過程 從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計 是一個逐漸擴充模型的過程生命周期方法學(xué)把設(shè)計進一步劃分成總體設(shè)計和詳細設(shè)計兩個階段 類似地 也可以把面向?qū)ο笤O(shè)計再細分為系統(tǒng)設(shè)計和對象設(shè)計 系統(tǒng)設(shè)計確定實現(xiàn)系統(tǒng)的策略和目標系統(tǒng)的高層結(jié)構(gòu) 對象設(shè)計確定解空間中的類 關(guān)聯(lián) 接口形式及實現(xiàn)操作的算法 4 5 11 1面向?qū)ο笤O(shè)計的準則 1 模塊化 Modularity 對象就是模塊 把數(shù)據(jù)結(jié)構(gòu)和操作這些數(shù)據(jù)的方法緊密地結(jié)合在一起所構(gòu)成的模塊2 抽象 不僅支持過程抽象 而且支持數(shù)據(jù)抽象 3 信息隱蔽 通過對象的封裝性來實現(xiàn) 4 弱藕合 對象是最基本的模塊 因此 耦合主要指不同對象之間相互關(guān)聯(lián)的緊密程度 分為交互藕合和繼承藕合 6 5 強內(nèi)聚 分為服務(wù)內(nèi)聚 類內(nèi)聚和一般特殊內(nèi)聚 6 可重用 11 3節(jié)討論 7 11 2啟發(fā)規(guī)則 1 設(shè)計結(jié)果應(yīng)該清晰易懂2 一般特殊結(jié)構(gòu)的深度適當(dāng)3 設(shè)計簡單的類4 使用簡單的協(xié)議5 使用簡單的服務(wù)6 把設(shè)計變動減至最小 8 11 3軟件重用 11 3 1概述1 軟件重用的概念軟件復(fù)用是指重復(fù)使用已有的軟件產(chǎn)品用于開發(fā)新的軟件系統(tǒng) 以達到提高軟件系統(tǒng)的開發(fā)質(zhì)量與效率 降低開發(fā)成本的目的 可復(fù)用的軟件成分一可復(fù)用構(gòu)件 ReusableComponent 可從舊軟件中提取 也可以專門為復(fù)用而開發(fā) 在軟件復(fù)用中重復(fù)使用的軟件產(chǎn)品不僅僅局限于程序代碼 而是包含了在軟件生產(chǎn)的各個階段所得到的各種軟件產(chǎn)品 9 可以用于軟件復(fù)用的軟件產(chǎn)品 按照其抽象程度的高低 可以劃分為如下的復(fù)用級別 1 代碼復(fù)用二進制形式的經(jīng)過編譯產(chǎn)生的目標代碼 文本形式的源代碼 2 設(shè)計結(jié)果的復(fù)用設(shè)計結(jié)果比源程序的抽象級別更高 因為它的復(fù)用受實現(xiàn)環(huán)境的影響較小 從而使可復(fù)用構(gòu)件被復(fù)用的機會更多 并且所需的修改更少 這種復(fù)用有三種途徑 軟件成分的重用級別 10 從現(xiàn)有系統(tǒng)的設(shè)計結(jié)果中提取一些可復(fù)用的設(shè)計構(gòu)件把一個現(xiàn)有系統(tǒng)的全部設(shè)計文檔在新的軟硬件平臺上重新實現(xiàn) 獨立于任何具體的應(yīng)用 有計劃地開發(fā)一些可復(fù)用的設(shè)計構(gòu)件 3 分析結(jié)果的復(fù)用這是比設(shè)計結(jié)果的復(fù)用抽象程度更高的復(fù)用 可被復(fù)用的分析結(jié)果是針對問題域的某些事物或某些問題的抽象程度更高的解法 受設(shè)計技術(shù)及實現(xiàn)條件的影響非常小 所以可復(fù)用的機會更大 11 11 3 2類構(gòu)件 面向?qū)ο蠹夹g(shù)中的 類 是比較理想的可重用軟構(gòu)件 稱之為類構(gòu)件 1 可重用軟構(gòu)件的特點一個軟構(gòu)件能在構(gòu)造各種各樣的軟件系統(tǒng)時方便地重復(fù)使用 必須具備的條件 1 獨立性強 2 高度可塑性 3 接口清晰 12 2 類構(gòu)件重用的方式1 實例重用2 繼承重用3 多態(tài)重用 13 11 3 3軟件重用的效益 1 提高軟件質(zhì)量2 提高軟件生產(chǎn)率3 降低軟件成本 14 11 4系統(tǒng)分解 系統(tǒng)的主要組成部分稱為子系統(tǒng) 與面向?qū)ο蠓治瞿P鸵粯?面向?qū)ο笤O(shè)計模型也由主題 類與對象 結(jié)構(gòu) 屬性 服務(wù)等5個層次組成 大多數(shù)系統(tǒng)的面向?qū)ο笤O(shè)計模型在邏輯上都由4大部分組成 分別是 問題域子系統(tǒng) 問題空間類 人機交互子系統(tǒng) 用戶界面類 任務(wù)管理子系統(tǒng) 任務(wù)管理類 數(shù)據(jù)管理子系統(tǒng) 數(shù)據(jù)管理類 15 1 子系統(tǒng)之間的兩種交互方式 1 客戶一供應(yīng)商關(guān)系作為 客戶 的子系統(tǒng)調(diào)用作為 供應(yīng)商 的子系統(tǒng) 后者完成某些服務(wù)工作并返回結(jié)果 2 平等伙伴關(guān)系每個子系統(tǒng)都可能調(diào)用其他子系統(tǒng) 因此 每個子系統(tǒng)都必須了解其他子系統(tǒng)的接口 16 2 組織系統(tǒng)的兩種方案 把子系統(tǒng)組織成完整的系統(tǒng)時 有水平層次組織和垂直塊組織兩種方案可供選擇 1 層次組織這種組織方案把軟件系統(tǒng)組織成一個層次系統(tǒng) 每層是一個子系統(tǒng) 2 塊狀組織這種組織方案把軟件系統(tǒng)垂直地分解成若干個相對獨立的 弱藕合的子系統(tǒng) 一個子系統(tǒng)相當(dāng)于一塊 每塊提供一種類型的服務(wù) 17 采用了層次與塊狀的混合結(jié)構(gòu) 18 概括地說 面向?qū)ο筌浖_發(fā)方法采用面向?qū)ο笤O(shè)計 OOD 技術(shù)進行問題解決方案的設(shè)計工作 它將問題的解決方案表述為 類 關(guān)聯(lián)的形式 其中 類包括問題域子系統(tǒng) 問題空間類 人機交互子系統(tǒng) 用戶界面類 任務(wù)管理子系統(tǒng) 任務(wù)管理類 和數(shù)據(jù)管理子系統(tǒng) 數(shù)據(jù)管理類 是從設(shè)計的角度出發(fā)對問題解決方案中的對象的抽象和描述 關(guān)聯(lián)則用于描述這些類和類之間的關(guān)系 19 面向?qū)ο笤O(shè)計工作內(nèi)容和步驟 因此 面向?qū)ο笤O(shè)計工作主要包括問題空間類 用戶界面類 任務(wù)管理類和數(shù)據(jù)管理類的設(shè)計 具體工作內(nèi)容和步驟如圖所示 20 一 問題空間類 11 5設(shè)計問題域子系統(tǒng) 是指那些直接從面向?qū)ο蠓治瞿P驮O(shè)計得到的類 它是使軟件系統(tǒng)能夠?qū)崿F(xiàn)對問題的求解的最基本的類 也是面向?qū)ο筌浖到y(tǒng)的核心類 利用面向?qū)ο蠓治黾夹g(shù)對問題進行了分析描述之后 就可以直接將其結(jié)果用于問題空間類的設(shè)計 即直接將分析所得到的對象 對象與對象之間的關(guān)聯(lián)確定為類以及類與類之間的關(guān)聯(lián) 這些直接從分析結(jié)果得到的類就是問題空間類 以一個字處理系統(tǒng)為例 如下圖所示 21 圖示 結(jié)構(gòu)化方法設(shè)計結(jié)果 22 又例 下圖示以及表1 8所示的是大學(xué)教務(wù)管理問題中的問題空間類 圖示 大學(xué)教務(wù)管理問題中的問題空間類 23 表5 1Class Student 學(xué)生 數(shù)據(jù)變量序號名稱定義類型中文名稱備注1IDchar 8 描述型學(xué)號2Namechar 24 描述型姓名3Sex 男 女 描述型性別枚舉類型4Birthdaydate描述型出生日期5EnrollmentDaydate描述型入學(xué)日期6Departmentchar 24 描述型系別7Specialitychar 24 描述型專業(yè)8Passwordchar 6 描述型密碼9Application 注冊 選課 描述型申請枚舉類型 24 操作序號名稱接口參數(shù)返回值中文名稱備注1GetID ID讀入學(xué)號GetPassword Password讀入密碼2VerifyPassword True Fasle檢驗3GetApplication Application詢問4PutApplication NULL回答5Note message NULL通知6ChangePassword NewPassword OldPassword NULL修改 25 表2Class Graduate 研究生 表3Class UnderGraduate 本科生 表4Class RegisterRec 注冊記錄 表5Class Course 課程 表6Class GraduateCourse 研究生課程 表7Class UnderGraduate 本科生課程 表8Class SelectCourse 選課單 26 二 用戶界面類 11 6設(shè)計人機交互子系統(tǒng) 是指那些為實現(xiàn)人機交互接口而設(shè)計的類 它是使軟件系統(tǒng)能夠接收用戶的命令和能夠為用戶提供信息所需要的類 用戶界面類是為了使系統(tǒng)能夠與用戶進行交互而必須增添設(shè)計的類 在實際中 一個軟件系統(tǒng)常常會因為其用戶界面使得用戶不滿意而遭到否定或棄之不用 因此用戶界面類的設(shè)計是一項既影響軟件系統(tǒng)前途 又需要做耐心細致調(diào)查分析的重要工作 27 盡管在分析過程中已經(jīng)對用戶在用戶界面方面進行了分析 但是在設(shè)計過程中仍然必須繼續(xù)做這項分析工作 必須具體設(shè)計確定交互作用的時間 交互方式和交互技術(shù)等 用戶界面類的設(shè)計通??梢圆捎孟到y(tǒng)原型 模型 法進行 28 1 分析考察用戶2 設(shè)計命令層次1 研究用戶交互的意義及準則如果已建立的交互系統(tǒng)中已有命令層次 則先研究這個已有的交互界面的意義和準則 2 建立初始命令層可以以多種方式提供給用戶 如窗口 按鈕 下拉菜單 菜單條 可動的圖標 等等 29 3 細化命令層為了細化命令層 應(yīng)考慮如下幾個問題 1 排序 在開發(fā)命令層時 必須仔細選擇不同的操作名稱 并把這些名稱按一定要求排序 將最有用的放在前面 或者按習(xí)慣的工作步驟排序 2 組裝 在操作中尋找組裝結(jié)構(gòu)模式 這有助于在層次中組織和分離操作 3 寬度和廣度 由于人的短暫記憶局限 命令層次不宜太廣太深 以3最為合適 4 極小化 盡量少用組合鍵 極小化用戶的擊鍵次數(shù) 30 3 完成設(shè)計當(dāng)前由于軟件開發(fā)工具 特別是可視化開發(fā)工具的日益豐富 完成用戶界面的具體設(shè)計已經(jīng)是一件十分容易的事情了 但是在具體設(shè)計時不能忽略以下原則 1 一致性使用一致的術(shù)語 一致的步驟和一致的動作行為 31 2 減少步驟極小化擊鍵次數(shù) 使用鼠標的次數(shù)和下拉菜單的次數(shù) 極小化響應(yīng)時間 3 盡量顯示提示信息盡量為用戶提供有意義的 及時反饋信息 4 設(shè)置取消操作用戶難免出錯 應(yīng)盡量能使用戶取消其錯誤動作 32 5 盡量減少要用戶記憶的內(nèi)容不應(yīng)該要求用戶記下某窗口的信息而用于另一窗口中 6 易學(xué)易用為用戶提供聯(lián)機學(xué)習(xí)手冊 7 屏幕生動活潑屏幕畫面看起來能夠吸引用戶 喚起用戶的注意和興趣 33 例如 對于大學(xué)教務(wù)管理問題 可以先根據(jù)對用戶的分析設(shè)計如下頁圖所示的用戶進入系統(tǒng)的屏幕 34 然后 根據(jù)針對該用戶界面和大多數(shù)面向?qū)ο筌浖_發(fā)環(huán)境所提供的可重用類設(shè)計相應(yīng)的用戶界面類 設(shè)計結(jié)果如下頁圖所示 35 圖示 大學(xué)教務(wù)管理問題的部分用戶界面類和問題空間類 36 其中 Window EditField StaticField和Button等類一般可從開發(fā)環(huán)境提供的類庫中通過繼承重用獲得 需要進一步做的設(shè)計工作主要是設(shè)計有關(guān)與問題空間類和任務(wù)管理類進行通訊的操作 例如需要為OKButton類設(shè)計一個向問題空間類中的Student類發(fā)送檢驗消息的操作 37 三 任務(wù)管理類 11 7設(shè)計任務(wù)管理子系統(tǒng) 是指那些為實現(xiàn)對多操作并發(fā)執(zhí)行的管理而設(shè)計的類 它是使軟件系統(tǒng)能夠同時處理多個并發(fā)行為所需要的類 所謂任務(wù) 就是一個處理過程 它可能包含不同類的多個操作的執(zhí)行 任務(wù)管理類的用途之一就是用于管理系統(tǒng)的這種任務(wù) 它的另一個主要用途是在操作系統(tǒng)級 運行平臺 上負責(zé)處理并發(fā) 中斷 調(diào)度等問題 從而使得所設(shè)計的系統(tǒng)能夠相對獨立于運行平臺 當(dāng)需要移植到其它運行平臺上 只需要替換有關(guān)任務(wù)管理類就可以了 38 因此 為了設(shè)計任務(wù)管理類 首先必須從所設(shè)計的系統(tǒng)有關(guān)類中找出需要并發(fā)進行的操作和那些與特定運行平臺有關(guān)的操作 然后再對它們進行分析設(shè)計1 確定任務(wù)類型1 確定事件驅(qū)動型任務(wù)某些任務(wù)是由事件驅(qū)動而執(zhí)行的 這種任務(wù)可能負責(zé)與設(shè)備的通訊 與一個窗口或多個窗口 其它任務(wù) 子系統(tǒng) 其它處理器或其它系統(tǒng)的通訊 39 2 確定時鐘驅(qū)動型任務(wù)這種任務(wù)在特定的時間被觸發(fā)執(zhí)行某些處理 例如 某些設(shè)備要求周期性地獲得數(shù)據(jù)或控制 某些用戶界面 子系統(tǒng) 任務(wù) 處理器或其它系統(tǒng)也可能需要周期性地通訊 此時就常用到時鐘驅(qū)動型的任務(wù) 3 確定優(yōu)先任務(wù)及關(guān)鍵任務(wù)優(yōu)先任務(wù)分高優(yōu)先級和低優(yōu)先級二種 用來適應(yīng)處理的需要 關(guān)鍵任務(wù)是有關(guān)系統(tǒng)成功或失敗的關(guān)鍵處理 它通常都有嚴格的可靠性要求 40 4 確定協(xié)調(diào)任務(wù)當(dāng)存在三個以上的任務(wù)時 就應(yīng)該考慮增加一個任務(wù) 用它來協(xié)調(diào)任務(wù) 協(xié)調(diào)任務(wù)的引入當(dāng)然會增加系統(tǒng)的開銷 但是引入?yún)f(xié)調(diào)任務(wù)有利于封裝任務(wù)之間的協(xié)調(diào)控制 使用狀態(tài)轉(zhuǎn)換矩陣可以描述該任務(wù)的行為 41 2 分析任務(wù)設(shè)計多任務(wù)系統(tǒng)的主要問題是設(shè)計人員常常定義太多的任務(wù) 原因是為了自己處理時的方便 但是這樣做就增大了整個設(shè)計的技術(shù)復(fù)雜度 并且不容易理解 因此 在進行任務(wù)管理類的具體設(shè)計前 必須仔細分析和選擇各個任務(wù) 盡量使得任務(wù)的數(shù)目降低到最少 42 3 完成設(shè)計設(shè)計任務(wù)包括定義任務(wù)的內(nèi)容以及它怎樣協(xié)調(diào)和通訊 1 任務(wù)的內(nèi)容2 怎樣協(xié)調(diào)3 怎樣通訊 43 任務(wù)管理類設(shè)計模板如右圖所示 44 問題空間類 用戶界面類和任務(wù)管理類之間的基本關(guān)系如下圖所示 任務(wù)管理類對象從運行平臺 操作系統(tǒng) 接收消息并通過發(fā)送消息創(chuàng)建有關(guān)用戶界面類對象 用戶界面類對象根據(jù)從用戶處獲得的信息創(chuàng)建有關(guān)問題空間類對象并發(fā)送有關(guān)消息給它 如果沒有為系統(tǒng)設(shè)計任務(wù)管理類 則上述任務(wù)管理類負責(zé)的有關(guān)工作由用戶界面類負責(zé)完成 圖示 任務(wù)管理類 用戶界面類和問題空間類及其消息傳送關(guān)系 45 四 數(shù)據(jù)管理類 11 8設(shè)計數(shù)據(jù)管理子系統(tǒng) 是指那些為實現(xiàn)對數(shù)據(jù)進行管理而設(shè)計的類 它是使軟件系統(tǒng)能夠?qū)ο蟮膶傩灾颠M行存貯和檢索所需要的類 數(shù)據(jù)管理類用于存貯和檢索對象的屬性值 可以采用文件模式或關(guān)系數(shù)據(jù)庫模式實現(xiàn) 設(shè)計數(shù)據(jù)管理類的目的是為了使得對對象屬性值的管理獨立于各種不同的數(shù)據(jù)管理模式 46 1 數(shù)據(jù)格式設(shè)計1 文件數(shù)據(jù)格式當(dāng)采用文件存貯管理方式時 數(shù)據(jù)格式的設(shè)計就是對文件記錄結(jié)構(gòu)進行設(shè)計 2 關(guān)系數(shù)據(jù)庫格式當(dāng)采用關(guān)系數(shù)據(jù)庫管理方式時 數(shù)據(jù)格式的設(shè)計就是對關(guān)系表結(jié)構(gòu)進行設(shè)計 47 2 操作設(shè)計數(shù)據(jù)管理類的操作包括增添數(shù)據(jù)記錄 刪除數(shù)據(jù)記錄 檢索數(shù)據(jù)記錄和更新數(shù)據(jù)記錄等幾種形式 問題空間類可通過這些操作發(fā)送消息給相應(yīng)的數(shù)據(jù)管理類實現(xiàn)對數(shù)據(jù)的存貯 刪除 檢索和更新 數(shù)據(jù)管理類設(shè)計模板如下圖所示 圖示 數(shù)據(jù)管理類設(shè)計模板 48 為大學(xué)教務(wù)管理問題中的SelectCourse 選課單 類設(shè)計的一個數(shù)據(jù)管理類 在SelectCourse類中需要保存的是StudentID CourseID以及分解為兩個原子變量Year和Semester 學(xué)期 的SelectForCourse等描述性變量 該類通過Write 登記 等操作向相應(yīng)的數(shù)據(jù)管理類SelectCourseManager發(fā)送Add 增添 Update 更新 等消息 49 圖示 大學(xué)教務(wù)管理問題中相應(yīng)于SelectCourse類的數(shù)據(jù)管理 50 第12章面向?qū)ο髮崿F(xiàn)與結(jié)構(gòu)化實現(xiàn)技術(shù)中先以模塊為單位進行過程設(shè)計和編碼調(diào)試相似 面向?qū)ο髮崿F(xiàn)技術(shù)是先以類為單位進行操作設(shè)計 編碼調(diào)試 然后實現(xiàn)類與類之間的關(guān)聯(lián)定義 并進行系統(tǒng)測試 最后交予用戶使用并根據(jù)使用情況進行維護 在每一個階段都必須按照有關(guān)規(guī)范編寫相應(yīng)的說明書或報告 因此 本章主要討論面向?qū)ο髮崿F(xiàn)技術(shù)的一些特點和不同于結(jié)構(gòu)化實現(xiàn)技術(shù) 51 1 實現(xiàn)語言毫無疑問 面向?qū)ο笤O(shè)計的實現(xiàn)最自然的實現(xiàn)方式是利用面向?qū)ο笳Z言 目前最常用的面向?qū)ο笳Z言是C 其它比較著名的面向?qū)ο笳Z言則還有Smalltalk 面向?qū)ο驪ASCAL JAVA Objective C CommonLispObjectSystem CLOS 等等 52 2 基本實現(xiàn)手段為了實現(xiàn)面向?qū)ο蟮脑O(shè)計 所選用的編碼語言一般應(yīng)包括實現(xiàn)類定義 對象創(chuàng)建 結(jié)構(gòu)定義 實例關(guān)聯(lián)定義 操作調(diào)用和消息發(fā)送 內(nèi)存管理 封裝等基本功能的編碼手段 這里以目前最為流行的C 語言分別對這些基本功能的實現(xiàn)手段加以說明 53 1 類定義使用C 對大學(xué)教務(wù)管理問題中的類Student 學(xué)生 定義如例6 1所示 例12 1類的定義 typedefstruct intmonth intday intyear date Month 月 day 日 year 年enumsexdef M F M 男 F 女enumappdef R S R 注冊 S 選課classStudent protected 導(dǎo)出類可以訪問的數(shù)據(jù)變量 54 charID 8 charName 24 sexdefSex dateBirthday dateEnrollmentDay charDepartment 24 charSpeciality 24 charPassword 6 apptdefApplication 導(dǎo)出類可以訪問的操作appdefGetApplication voidPutApplication voidNote char Msg 55 public 構(gòu)造函數(shù) 必須與類名稱相同Student char InitID 析構(gòu)函數(shù) 必須與類名稱相同 Student 所有類都可以訪問的操作char GetID char GetPassword booleanVerifyPassword voidChangePassword char NewPassword char OldPassword 56 在C 中 數(shù)據(jù)變量和操作都被說明為成員 數(shù)據(jù)變量和操作的名稱不能相同 類的成員必須被說明為公有的 public 保護的 protectd 或私有的 private 中的一種 其中私有的為缺省值 公有成員可以被任何類的操作訪問 保護成員只允許類自身及其導(dǎo)出類的操作訪問 私有成員只允許類自身的操作訪問 57 在上述例子中 類Student的所有數(shù)據(jù)變量和幾個操作被定義為保護成員 因為其導(dǎo)出類Undergraduate 本科生 和Graduate 研究生 將要訪問這些成員 類中操作的定義類似于一個過程或函數(shù)的定義 只是需要把類名作為操作名的前綴 例11 2給出了用C 編碼設(shè)計的類Student的操作ChangePassword 58 例11 2類操作的定義 voidStudent Changepassword char NewPassword char OldPassword if OldPassword Password Password NewPassword 59 Student Student char InitID ID InitID 與類名稱相同的兩個操作Student和 Student分別稱為構(gòu)造函數(shù)和析構(gòu)函數(shù) 它們分別用于對象創(chuàng)建和對象消除操作 例如類Student的構(gòu)造函數(shù)和析構(gòu)函數(shù)的定義分別如例12 3和12 4所示 例12 3類構(gòu)造函數(shù)的定義 60 例12 4類析構(gòu)函數(shù)的定義析構(gòu)函數(shù)是不帶參數(shù)的 其名稱是在類名稱前面加一個波浪號 Student Student 61 12 2 2對象創(chuàng)建C 有兩種對象創(chuàng)建方式 靜態(tài)內(nèi)存分配方式和動態(tài)內(nèi)存分配方式 每當(dāng)創(chuàng)建一個新對象 就執(zhí)行一次構(gòu)造函數(shù) 例12 5用靜態(tài)內(nèi)存分配方式創(chuàng)建了類Student的學(xué)號為98109002的對象studentobj 對象創(chuàng)建的靜態(tài)內(nèi)存分配方式Studentstudentobj 98109002 62 如果該語句是出現(xiàn)在一個操作或函數(shù)中 則說明studentobj被定

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論