C++語言程序設(shè)計(jì):第四章 類與對象_第1頁
C++語言程序設(shè)計(jì):第四章 類與對象_第2頁
C++語言程序設(shè)計(jì):第四章 類與對象_第3頁
C++語言程序設(shè)計(jì):第四章 類與對象_第4頁
C++語言程序設(shè)計(jì):第四章 類與對象_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)第四章第四章 類與對象類與對象C+C+語言程序設(shè)計(jì)語言程序設(shè)計(jì)C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)常用編程語言常用編程語言面向?qū)ο蠓椒嫦驅(qū)ο蠓椒ㄉ弦恢v內(nèi)容回顧上一講內(nèi)容回顧面向?qū)ο蟮拿嫦驅(qū)ο蟮能浖_發(fā)軟件開發(fā)C+語言概述語言概述數(shù)據(jù)來源:數(shù)據(jù)來源:2013年年2月月TIOBE編程語言排行榜編程語言排行榜Java18%C17%Objective-C10%C+9%C#7%PHP5%Python5%Basic5%Perl2%Ruby2%JavaScriptVisual Basic .NETLispPascalDelphiTransact-SQLBashMATLABAssembl

2、yAdaLuaPLSASCOBOLFortranRLabVIEWSchemeScratch 2計(jì)算機(jī)計(jì)算機(jī)客觀事物客觀事物(問題域)(問題域)自然語言語言的鴻溝編程語言對問題域的認(rèn)識(人)語言的過渡(人)編程(人)程序的理解和執(zhí)行(機(jī)器)機(jī)器語言機(jī)器語言匯編語言匯編語言非面向?qū)ο蟮母呒壵Z言非面向?qū)ο蟮母呒壵Z言面向?qū)ο蟮母呒壵Z言面向?qū)ο蟮母呒壵Z言面向?qū)ο蟮姆治觯嫦驅(qū)ο蟮姆治觯∣OA)面向?qū)ο蟮脑O(shè)計(jì)(面向?qū)ο蟮脑O(shè)計(jì)(OOD)面向?qū)ο蟮木幊蹋嫦驅(qū)ο蟮木幊蹋∣OP)面向?qū)ο蟮臏y試(面向?qū)ο蟮臏y試(OOT)面向?qū)ο蟮能浖S護(hù)(面向?qū)ο蟮能浖S護(hù)(OOSM)C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)3你思考的能力取

3、決于:你是否知道能夠表達(dá)該思想的詞匯 Sapir-Whorf假設(shè)C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)4本講主要內(nèi)容本講主要內(nèi)容l面向?qū)ο蟪绦蛟O(shè)計(jì)的基本特點(diǎn)面向?qū)ο蟪绦蛟O(shè)計(jì)的基本特點(diǎn)l類和對象核心知識點(diǎn)串講類和對象核心知識點(diǎn)串講l類和對象,應(yīng)用舉例類和對象,應(yīng)用舉例l構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)l類的組合類的組合lUMLUML簡介簡介C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)1.1.面向?qū)ο蟪绦蛟O(shè)計(jì)的基本特點(diǎn)面向?qū)ο蟪绦蛟O(shè)計(jì)的基本特點(diǎn)(OOP)(OOP)抽象抽象 封裝封裝 繼承繼承 多態(tài)多態(tài)5C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)6抽象抽象 抽象是對具體對象(問題)進(jìn)行概抽象是對具體對象(問題)進(jìn)行概括,抽出這一類對象

4、的公共性質(zhì)并加以括,抽出這一類對象的公共性質(zhì)并加以描述的過程描述的過程。 先注意問題的本質(zhì)及描述,其次是實(shí)現(xiàn)先注意問題的本質(zhì)及描述,其次是實(shí)現(xiàn)過程或細(xì)節(jié)。過程或細(xì)節(jié)。 數(shù)據(jù)抽象:描述某類對象的屬性或狀態(tài)數(shù)據(jù)抽象:描述某類對象的屬性或狀態(tài)(對象相互區(qū)別的物理量)。(對象相互區(qū)別的物理量)。 代碼抽象:描述某類對象的共有的行為代碼抽象:描述某類對象的共有的行為特征或具有的功能。特征或具有的功能。 抽象的實(shí)現(xiàn)抽象的實(shí)現(xiàn):通過類的聲明。:通過類的聲明。OOP的基本特點(diǎn)C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)7抽象實(shí)例抽象實(shí)例鐘表鐘表 數(shù)據(jù)抽象數(shù)據(jù)抽象:intint hourhour,int,int minutem

5、inute,int,int secondsecond 代碼抽象代碼抽象:setTimesetTime()(), ,showTimeshowTime()()OOP的基本特點(diǎn)C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)8抽象實(shí)例抽象實(shí)例鐘表類鐘表類class Clock class Clock publicpublic: : void void setTimesetTime( (intint newHnewH, , intint newMnewM, , intint newSnewS);); void void showTimeshowTime();(); privateprivate: : intint hou

6、r, minute, second; hour, minute, second; ; ;OOP的基本特點(diǎn)C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)9抽象實(shí)例抽象實(shí)例人人 數(shù)據(jù)抽象數(shù)據(jù)抽象:string string namename,string,string gendergender,int,int ageage,int,int idid 代碼抽象代碼抽象:生物屬性角度:生物屬性角度:getClothgetCloth(), (), eateat(), (), stepstep(),(),社會屬性角度:社會屬性角度:workwork(), (), promotepromote() ,() ,OOP的基本特點(diǎn)

7、C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)10封裝封裝 將抽象出的數(shù)據(jù)成員、代碼成員相將抽象出的數(shù)據(jù)成員、代碼成員相結(jié)合,將它們視為一個整體。結(jié)合,將它們視為一個整體。 目的是曾強(qiáng)安全性和簡化編程,使用者目的是曾強(qiáng)安全性和簡化編程,使用者不必了解具體的實(shí)現(xiàn)細(xì)節(jié),而只需要通不必了解具體的實(shí)現(xiàn)細(xì)節(jié),而只需要通過外部接口,以特定的訪問權(quán)限,來使過外部接口,以特定的訪問權(quán)限,來使用類的成員。用類的成員。 實(shí)現(xiàn)封裝實(shí)現(xiàn)封裝:類聲明中的:類聲明中的OOP的基本特點(diǎn)C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)11封裝封裝 實(shí)例:實(shí)例:class Clock class Clock publicpublic:void:void setTi

8、mesetTime( (intint newHnewH, , intint newMnewM, , intint newSnewS);); void void showTimeshowTime();(); privateprivate: : intint hour, minute, second; hour, minute, second; ; ;邊界特定的訪問權(quán)限OOP的基本特點(diǎn)外部接口C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)12繼承與派生繼承與派生 是是C+中支持層次分類的一種機(jī)制,中支持層次分類的一種機(jī)制,允許程序員在保持原有類特性的基礎(chǔ)上,允許程序員在保持原有類特性的基礎(chǔ)上,進(jìn)行更具體的說明。進(jìn)行

9、更具體的說明。 實(shí)現(xiàn)實(shí)現(xiàn):聲明派生類:聲明派生類見見第第7章章OOP的基本特點(diǎn)C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)13多態(tài)性多態(tài)性 多態(tài)多態(tài):同一名稱,不同的功能實(shí)現(xiàn)方式。:同一名稱,不同的功能實(shí)現(xiàn)方式。 目的目的:達(dá)到行為標(biāo)識統(tǒng)一,減少程序中標(biāo):達(dá)到行為標(biāo)識統(tǒng)一,減少程序中標(biāo)識符的個數(shù)。識符的個數(shù)。 實(shí)現(xiàn)實(shí)現(xiàn):重載函數(shù)和虛函數(shù):重載函數(shù)和虛函數(shù)見見第第8章章OOP的基本特點(diǎn)C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)2.2.類和對象核心知識點(diǎn)串講類和對象核心知識點(diǎn)串講14C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)本講核心知識點(diǎn)本講核心知識點(diǎn)15把一類對象的共同屬性把一類對象的共同屬性和行為提取出來,形成和行為提取出來,形成一個一

10、個有機(jī)整體有機(jī)整體抽象抽象 封裝封裝 類類class: 定義類定義類class A /A為類名為類名 一組屬性一組屬性; 一組行為一組行為;設(shè)計(jì)思路關(guān)鍵概念和術(shù)語C+提供的語法支持C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)本講核心知識點(diǎn)本講核心知識點(diǎn)16在類中,能夠有一種表在類中,能夠有一種表示示共同屬性和行為共同屬性和行為的方的方式式數(shù)據(jù)成員數(shù)據(jù)成員成員函數(shù)成員函數(shù)數(shù)據(jù)類型的定義數(shù)據(jù)類型的定義函數(shù)的定義函數(shù)的定義class A /A為類名為類名 int a, b, c; /一組屬性一組屬性; int fn(int a, int b); /一組行為一組行為;int A:fn(int a, int b) /定

11、義具體的行為定義具體的行為 設(shè)計(jì)思路關(guān)鍵概念和術(shù)語C+提供的語法支持C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)本講核心知識點(diǎn)本講核心知識點(diǎn)17在有機(jī)整體里,共同屬在有機(jī)整體里,共同屬性和行為要有性和行為要有不同的訪不同的訪問權(quán)限問權(quán)限類成員的類成員的訪問控制訪問控制public: 公有類型公有類型private: 私有類型私有類型protected: 保護(hù)類型保護(hù)類型class A /A為類名為類名 private: int a, b, c; /一組屬性一組屬性; public: int fn(int a, int b); /一組行為一組行為;設(shè)計(jì)思路關(guān)鍵概念和術(shù)語C+提供的語法支持C+語言程序設(shè)計(jì)浙江工業(yè)

12、大學(xué)本講核心知識點(diǎn)本講核心知識點(diǎn)18如何使用類?如何使用類?(類是設(shè)計(jì)藍(lán)圖,(類是設(shè)計(jì)藍(lán)圖,據(jù)此要制造出產(chǎn)品)據(jù)此要制造出產(chǎn)品)對象對象 實(shí)例實(shí)例類名類名 對象名對象名;對象名對象名.數(shù)據(jù)成員名數(shù)據(jù)成員名對象名對象名.成員函數(shù)名成員函數(shù)名 (參數(shù)表參數(shù)表)class A /A為類名為類名 private: int a; public: int b, c; public: int fn(int a, int b); ;設(shè)計(jì)思路關(guān)鍵概念和術(shù)語C+提供的語法支持A a1, a2; /獲得了類A的兩個對象a1.b = 1; /操作a1的數(shù)據(jù)成員a2.fn(1, 2); /讓a2執(zhí)行一種行為C+語言程序

13、設(shè)計(jì)浙江工業(yè)大學(xué)本講核心知識點(diǎn)本講核心知識點(diǎn)19用類生成對象時,要用類生成對象時,要有一種比較簡單的有一種比較簡單的初初始化對象狀態(tài)始化對象狀態(tài)的手段的手段構(gòu)造函數(shù)構(gòu)造函數(shù)在類中,與在類中,與類名相同名稱的類名相同名稱的成員函數(shù),無返回值成員函數(shù),無返回值;在生;在生成對象時,會成對象時,會自動執(zhí)行這個自動執(zhí)行這個函數(shù)函數(shù)class A /A為類名為類名 A(); /類類A的的構(gòu)造函數(shù)構(gòu)造函數(shù) A(int a, int b); /類類A的又一個的又一個構(gòu)造函數(shù)構(gòu)造函數(shù) A(A& a); /類類A的又一個構(gòu)造函數(shù),叫的又一個構(gòu)造函數(shù),叫復(fù)制構(gòu)造函數(shù)復(fù)制構(gòu)造函數(shù) 一組屬性一組屬性; 一組行

14、為一組行為;設(shè)計(jì)思路關(guān)鍵概念和術(shù)語C+提供的語法支持C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)本講核心知識點(diǎn)本講核心知識點(diǎn)20在刪除對象時,要有在刪除對象時,要有一種比較簡單的手段一種比較簡單的手段去執(zhí)行一些去執(zhí)行一些清理工作清理工作析構(gòu)函數(shù)析構(gòu)函數(shù)在類中,在類中,類名前加類名前加“”的的成員函數(shù),無返回值,沒任成員函數(shù),無返回值,沒任何參數(shù)何參數(shù);在銷毀對象前,會;在銷毀對象前,會自動執(zhí)行這個函數(shù)自動執(zhí)行這個函數(shù)class A /A為類名為類名 A(); /類類A的的析構(gòu)析構(gòu)函數(shù)函數(shù) 一組屬性一組屬性; 一組行為一組行為;設(shè)計(jì)思路關(guān)鍵概念和術(shù)語C+提供的語法支持C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)本講核心知識點(diǎn)本

15、講核心知識點(diǎn)21一個類里可以一個類里可以包含包含其其他類的對象(先分解他類的對象(先分解設(shè)計(jì)簡單的類,再組設(shè)計(jì)簡單的類,再組合出更復(fù)雜的類)合出更復(fù)雜的類)類的組合類的組合允許在組合類中,定義其他允許在組合類中,定義其他類的對象(類的對象(內(nèi)嵌對象內(nèi)嵌對象);規(guī));規(guī)定定含內(nèi)嵌對象的對象的初始含內(nèi)嵌對象的對象的初始化和退出前清理規(guī)則化和退出前清理規(guī)則class A /A為類名為類名 B b; /類類B的一個對象的一個對象 C c; /類類B的一個對象的一個對象;設(shè)計(jì)思路關(guān)鍵概念和術(shù)語C+提供的語法支持C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)本講核心知識點(diǎn)本講核心知識點(diǎn)22一個類里可以一個類里可以包含包含其

16、其他類的對象(先分解他類的對象(先分解設(shè)計(jì)簡單的類,再組設(shè)計(jì)簡單的類,再組合出更復(fù)雜的類)合出更復(fù)雜的類)類的組合類的組合允許在組合類中,定義其他允許在組合類中,定義其他類的對象(類的對象(內(nèi)嵌對象內(nèi)嵌對象);規(guī));規(guī)定定含內(nèi)嵌對象的對象的初始含內(nèi)嵌對象的對象的初始化和退出前清理規(guī)則化和退出前清理規(guī)則設(shè)計(jì)思路關(guān)鍵概念和術(shù)語C+提供的語法支持創(chuàng)建順序:內(nèi)嵌對象-對象構(gòu)造函數(shù)的定義:類名:構(gòu)造函數(shù)(形參表):內(nèi)嵌對象1(形參表), 類的初始化構(gòu)造函數(shù)調(diào)用順序:先執(zhí)行初始化列表中內(nèi)嵌對象的構(gòu)造函數(shù),再執(zhí)行本類構(gòu)造函數(shù)的函數(shù)體析構(gòu)函數(shù)調(diào)用順序:與構(gòu)造函數(shù)正好相反,先執(zhí)行本類析構(gòu)函數(shù)的函數(shù)體,再執(zhí)行內(nèi)嵌

17、對象的析構(gòu)函數(shù)初始化列表C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)本講核心知識點(diǎn)本講核心知識點(diǎn)23已經(jīng)知道某個類的名已經(jīng)知道某個類的名稱,先在設(shè)計(jì)中用起稱,先在設(shè)計(jì)中用起來,這個類的具體實(shí)來,這個類的具體實(shí)現(xiàn)在其它地方會定義現(xiàn)在其它地方會定義前向引用聲明前向引用聲明在使用之前,先聲明一在使用之前,先聲明一下下設(shè)計(jì)思路關(guān)鍵概念和術(shù)語C+提供的語法支持class B;class A public: int fn(B b);只能使用被聲明的符只能使用被聲明的符號,而不能涉及類的號,而不能涉及類的任何細(xì)節(jié)任何細(xì)節(jié)C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)類和對象核心知識點(diǎn)匯總類和對象核心知識點(diǎn)匯總24抽象抽象 封裝封裝 類類cl

18、ass關(guān)鍵字關(guān)鍵字關(guān)鍵概念和術(shù)語C+提供的語法支持有機(jī)整體有機(jī)整體設(shè)計(jì)思路數(shù)據(jù)成員數(shù)據(jù)成員成員函數(shù)成員函數(shù)數(shù)據(jù)類型的定義數(shù)據(jù)類型的定義函數(shù)的定義函數(shù)的定義共同屬性和共同屬性和行為行為類成員的類成員的訪問控制訪問控制public, private, protected三個關(guān)鍵字三個關(guān)鍵字不同的訪問不同的訪問權(quán)限權(quán)限構(gòu)造函數(shù)構(gòu)造函數(shù)與類名相同名稱的成員函數(shù),與類名相同名稱的成員函數(shù),無返回值無返回值初始化對象初始化對象狀態(tài)狀態(tài)析構(gòu)函數(shù)析構(gòu)函數(shù)類名前加類名前加“”的成員函數(shù),的成員函數(shù),無返回值,沒任何參數(shù)無返回值,沒任何參數(shù)清理工作清理工作C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)類和對象核心知識點(diǎn)匯總類和對象

19、核心知識點(diǎn)匯總25關(guān)鍵概念和術(shù)語C+提供的語法支持設(shè)計(jì)思路對象對象 實(shí)例實(shí)例類名類名 對象名對象名;對象名對象名.數(shù)據(jù)成員名數(shù)據(jù)成員名對象名對象名.成員函數(shù)名成員函數(shù)名 (參數(shù)表參數(shù)表)如何使用類?如何使用類?類的組合類的組合內(nèi)嵌對象的定義,組合類對內(nèi)嵌對象的定義,組合類對象的初始化和退出前清理規(guī)象的初始化和退出前清理規(guī)則則類中含其它類中含其它類的對象類的對象前向前向引用聲明引用聲明先聲明再使用,不能涉及類先聲明再使用,不能涉及類的任何實(shí)現(xiàn)細(xì)節(jié)的任何實(shí)現(xiàn)細(xì)節(jié)先使用類的先使用類的符號,其它符號,其它地方定義類地方定義類的具體實(shí)現(xiàn)的具體實(shí)現(xiàn)C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)3.3.類和對象,應(yīng)用舉例類和

20、對象,應(yīng)用舉例26C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)27C+中的類中的類 類是具有相同屬性和行為的一組對象類是具有相同屬性和行為的一組對象的集合,它為屬于該類的全部對象提的集合,它為屬于該類的全部對象提供了統(tǒng)一的抽象描述,其內(nèi)部包括屬供了統(tǒng)一的抽象描述,其內(nèi)部包括屬性和行為兩個主要部分。性和行為兩個主要部分。 利用類可以實(shí)現(xiàn)數(shù)據(jù)的封裝、隱藏、利用類可以實(shí)現(xiàn)數(shù)據(jù)的封裝、隱藏、繼承與派生。繼承與派生。 利用類易于編寫大型復(fù)雜程序,其模利用類易于編寫大型復(fù)雜程序,其模塊化程度比塊化程度比C中采用函數(shù)更高。中采用函數(shù)更高。類類 和和 對對 象象C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)28類的聲明形式類的聲明形式 類是一

21、種用戶自定義類型,聲明形式:類是一種用戶自定義類型,聲明形式:class class 類名稱類名稱 public:public: 公有成員公有成員(外部接口)(外部接口) private:private: 私有成員私有成員 protected:protected: 保護(hù)型成員保護(hù)型成員;類類 和和 對對 象象C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)29數(shù)據(jù)成員和成員函數(shù)數(shù)據(jù)成員和成員函數(shù) 數(shù)據(jù)成員數(shù)據(jù)成員:與一般的變量聲明相同,:與一般的變量聲明相同,但需要將它放在類的聲明體中。但需要將它放在類的聲明體中。 成員函數(shù)成員函數(shù):與一般的函數(shù)聲明相同,:與一般的函數(shù)聲明相同,但需要將它放在類的聲明體中。但需要

22、將它放在類的聲明體中。類類 和和 對對 象象C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)30對象對象 類的對象是該類的某一特定實(shí)體,即類的對象是該類的某一特定實(shí)體,即類類型的變量。類類型的變量。 聲明形式:聲明形式: 類名類名 對象名;對象名; 例:例: Clock myClock;Clock myClock;類類 和和 對對 象象C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)31類中成員的訪問方式類中成員的訪問方式 類中成員互訪類中成員互訪 直接使用成員名直接使用成員名 類外訪問類外訪問 使用使用“對象名對象名.成員名成員名”方式訪問方式訪問 public 屬屬性的成員性的成員類類 和和 對對 象象C+語言程序設(shè)計(jì)浙江工業(yè)大

23、學(xué)32例例4-1類的應(yīng)用舉例類的應(yīng)用舉例類類 和和 對對 象象1. #include2. using namespace std;3. class Clock 4. 5. ./類的聲明略類的聲明略6. ;7. /.類的實(shí)現(xiàn)略類的實(shí)現(xiàn)略8. int main()9. 10. Clock myClock;11. myClock.setTime(8, 30, 30);12. myClock.showTime();13. return 0;14.演示C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)33成員函數(shù)成員函數(shù) 在類中說明原型,可以在類外給出函數(shù)在類中說明原型,可以在類外給出函數(shù)體實(shí)現(xiàn),并在函數(shù)名前使用類名加以限體

24、實(shí)現(xiàn),并在函數(shù)名前使用類名加以限定。也可以直接在類中給出函數(shù)體,形定。也可以直接在類中給出函數(shù)體,形成成內(nèi)聯(lián)成員函數(shù)內(nèi)聯(lián)成員函數(shù) 允許聲明允許聲明帶默認(rèn)形參值的函數(shù)帶默認(rèn)形參值的函數(shù):函數(shù)在:函數(shù)在定義時可以預(yù)先聲明默認(rèn)的形參值定義時可以預(yù)先聲明默認(rèn)的形參值 允許聲明允許聲明重載函數(shù)重載函數(shù):兩個以上的函數(shù),:兩個以上的函數(shù),名稱相同,形參的個數(shù)或者類型不同名稱相同,形參的個數(shù)或者類型不同類類 和和 對對 象象C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)34內(nèi)聯(lián)成員函數(shù)內(nèi)聯(lián)成員函數(shù) 在編譯時將函數(shù)體嵌入在每個調(diào)用處,在編譯時將函數(shù)體嵌入在每個調(diào)用處,使得程序運(yùn)行并調(diào)用函數(shù)時不發(fā)生控使得程序運(yùn)行并調(diào)用函數(shù)時不發(fā)

25、生控制轉(zhuǎn)移。制轉(zhuǎn)移。 內(nèi)聯(lián)函數(shù)體中要盡量保持簡單。內(nèi)聯(lián)函數(shù)體中要盡量保持簡單。 在類中聲明內(nèi)聯(lián)成員函數(shù)的方式:在類中聲明內(nèi)聯(lián)成員函數(shù)的方式: 將函數(shù)體放在類的聲明中。將函數(shù)體放在類的聲明中。 使用使用inline關(guān)鍵字。關(guān)鍵字。類類 和和 對對 象象演示C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)35公有類型成員公有類型成員在關(guān)鍵字在關(guān)鍵字public后面聲明,它們是類后面聲明,它們是類與外部的接口,任何外部函數(shù)都可以訪與外部的接口,任何外部函數(shù)都可以訪問公有類型數(shù)據(jù)和函數(shù)。問公有類型數(shù)據(jù)和函數(shù)。類類 和和 對對 象象C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)36私有類型成員私有類型成員在關(guān)鍵字在關(guān)鍵字private后面聲

26、明,后面聲明,只允許本只允許本類中的函數(shù)訪問,而類外部的任何函數(shù)類中的函數(shù)訪問,而類外部的任何函數(shù)都不能訪問。都不能訪問。如果如果緊跟在類名稱的后面聲明私有成員,緊跟在類名稱的后面聲明私有成員,則則關(guān)鍵字關(guān)鍵字privateprivate可以可以省略。省略。類類 和和 對對 象象C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)37保護(hù)類型保護(hù)類型與與private類似,其差別表現(xiàn)在繼承與類似,其差別表現(xiàn)在繼承與派生時對派生類的影響不同,第七章講。派生時對派生類的影響不同,第七章講。類類 和和 對對 象象演示C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)4.4.構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)38C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)39

27、構(gòu)造函數(shù)構(gòu)造函數(shù) 構(gòu)造函數(shù)的作用是在對象被創(chuàng)建時使構(gòu)造函數(shù)的作用是在對象被創(chuàng)建時使用特定的值構(gòu)造對象,或者說將對象用特定的值構(gòu)造對象,或者說將對象初始化初始化為一個特定的狀態(tài)。為一個特定的狀態(tài)。 在對象創(chuàng)建時在對象創(chuàng)建時由系統(tǒng)自動調(diào)用由系統(tǒng)自動調(diào)用。 如果程序中未聲明,則系統(tǒng)自動產(chǎn)生如果程序中未聲明,則系統(tǒng)自動產(chǎn)生出一個出一個隱含隱含的參數(shù)列表為空的構(gòu)造函的參數(shù)列表為空的構(gòu)造函數(shù)數(shù) 允許為允許為內(nèi)聯(lián)內(nèi)聯(lián)函數(shù)、函數(shù)、重載重載函數(shù)、函數(shù)、帶默認(rèn)帶默認(rèn)形參值形參值的函數(shù)的函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)40構(gòu)造函數(shù)舉例構(gòu)造函數(shù)舉例class Clock class

28、 Clock public:public:Clock(Clock(intint newH,intnewH,int newM,intnewM,int newS);newS);/構(gòu)造函數(shù)構(gòu)造函數(shù)void void setTimesetTime( (intint newHnewH, , intint newMnewM, , intint newSnewS););void void showTimeshowTime();();private:private:intint hour, minute, second; hour, minute, second;構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)C+語言程

29、序設(shè)計(jì)浙江工業(yè)大學(xué)41構(gòu)造函數(shù)的實(shí)現(xiàn):構(gòu)造函數(shù)的實(shí)現(xiàn):Clock:Clock(Clock:Clock(intint newHnewH, , intint newMnewM, , intint newSnewS) ) hour = hour = newHnewH; ;minute = minute = newMnewM; ;second = second = newSnewS; ; 建立對象時構(gòu)造函數(shù)的作用:建立對象時構(gòu)造函數(shù)的作用:intint main() main() Clock c(0,0,0); Clock c(0,0,0); /隱含調(diào)用構(gòu)造函數(shù),將初始值作為實(shí)參。隱含調(diào)用構(gòu)造函數(shù),將

30、初始值作為實(shí)參。 c.showTimec.showTime();();return 0;return 0; 演示C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)42關(guān)鍵術(shù)語關(guān)鍵術(shù)語 引用引用(P78)復(fù)制構(gòu)造函數(shù)預(yù)備知識復(fù)制構(gòu)造函數(shù)預(yù)備知識 聲明一個引用時,在引用標(biāo)識符的前面加上聲明一個引用時,在引用標(biāo)識符的前面加上&,后面跟上它所引用的標(biāo)識符的名字,后面跟上它所引用的標(biāo)識符的名字 int val; int& rval = val; / rval是對是對val的引用的引用 C+語言中對一個變量或常量標(biāo)識符起的別語言中對一個變量或常量標(biāo)識符起的別名名 聲明引用的同時,必須對它進(jìn)行初始化,使聲明引用的

31、同時,必須對它進(jìn)行初始化,使得它指向一個已存在的對象得它指向一個已存在的對象 對引用的操作與對被引用對象所做的操作,對引用的操作與對被引用對象所做的操作,效果完全一樣效果完全一樣C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)43關(guān)鍵術(shù)語關(guān)鍵術(shù)語 引用引用引用的說明引用的說明 const引用引用1) 在引用說明前加在引用說明前加const。2) 不能改變不能改變const引用的值,但是可以引用的值,但是可以 改變它改變它所引用的對象的值。所引用的對象的值。 如:如: int i; const int& ri = i; ri = 45; () i = 45; ()C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)44關(guān)鍵術(shù)語關(guān)鍵

32、術(shù)語 引用引用引用的說明引用的說明 對一個常量進(jìn)行引用時,必須將這個引用定對一個常量進(jìn)行引用時,必須將這個引用定義為義為const引用引用 如:如:const int ci = 45; int& ri = ci; () const int& rci = ci; ()演示C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)45關(guān)鍵術(shù)語關(guān)鍵術(shù)語 引用傳遞引用傳遞引用的說明引用的說明 用引用作為參數(shù),在函數(shù)調(diào)用時發(fā)生用引用作為參數(shù),在函數(shù)調(diào)用時發(fā)生的參數(shù)傳遞,稱為的參數(shù)傳遞,稱為引用傳遞引用傳遞 引用類型的形參通過形實(shí)結(jié)合,成為引用類型的形參通過形實(shí)結(jié)合,成為了實(shí)參的一個別名,對形參的任何操了實(shí)參的一個別名

33、,對形參的任何操作也就會直接作用于實(shí)參作也就會直接作用于實(shí)參 典型使用場合:典型使用場合:1)希望修改實(shí)參的值)希望修改實(shí)參的值2)向主調(diào)函數(shù)返回額外的結(jié)果)向主調(diào)函數(shù)返回額外的結(jié)果3)向函數(shù)傳遞大型類對象)向函數(shù)傳遞大型類對象C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)46引用傳遞舉例引用傳遞舉例1.void swapByValue(int a, int b)2.3. int temp = a;4. a = b;5. b = temp;6.1.void swapByRef(int& a, int& b)2.3. int temp = a;4. a = b;5. b = temp;6.演示C+

34、語言程序設(shè)計(jì)浙江工業(yè)大學(xué)47復(fù)制(拷貝)構(gòu)造函數(shù)復(fù)制(拷貝)構(gòu)造函數(shù)復(fù)制構(gòu)造函數(shù)是一種特殊的構(gòu)造函數(shù),其形參為本復(fù)制構(gòu)造函數(shù)是一種特殊的構(gòu)造函數(shù),其形參為本類的對象引用。類的對象引用。class class 類名類名 public :public : 類名(形參);類名(形參);/構(gòu)造函數(shù)構(gòu)造函數(shù) 類名(類名類名(類名& & 對象名);對象名);/復(fù)制構(gòu)造函數(shù)復(fù)制構(gòu)造函數(shù) . ;類名類名:類(類名類(類名& & 對象名)對象名)/復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn)復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn) 函數(shù)體函數(shù)體 構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)48復(fù)制構(gòu)造函數(shù)復(fù)

35、制構(gòu)造函數(shù)(例例)1.class Student2.3. public:4. Student(int classId);5. Student(Student& student);6. int getClassId();7. private:8. int m_classId;9.;構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)49復(fù)制構(gòu)造函數(shù)復(fù)制構(gòu)造函數(shù)(例例) 當(dāng)用類的一個對象去初始化該類的另一當(dāng)用類的一個對象去初始化該類的另一個對象時系統(tǒng)自動調(diào)用復(fù)制構(gòu)造函數(shù)實(shí)個對象時系統(tǒng)自動調(diào)用復(fù)制構(gòu)造函數(shù)實(shí)現(xiàn)拷貝賦值。現(xiàn)拷貝賦值。intint main() main() Stud

36、ent a(2012); Student a(2012); Student b = a; / Student b = a; /復(fù)制構(gòu)造函數(shù)被調(diào)用復(fù)制構(gòu)造函數(shù)被調(diào)用 coutcout b.getClassIdb.getClassId() () endlendl; ; 屏幕輸出:屏幕輸出:20122012構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)50復(fù)制構(gòu)造函數(shù)復(fù)制構(gòu)造函數(shù)(例例) 若函數(shù)的形參為類對象,調(diào)用函數(shù)時,若函數(shù)的形參為類對象,調(diào)用函數(shù)時,實(shí)參賦值給形參,系統(tǒng)自動調(diào)用復(fù)制構(gòu)實(shí)參賦值給形參,系統(tǒng)自動調(diào)用復(fù)制構(gòu)造函數(shù)。例如:造函數(shù)。例如:void fun1(Studen

37、t s) void fun1(Student s) coutcout s.getClassIds.getClassId() () endlendl; ; intint main() main() Student a(2013); Student a(2013); fun1(a); / fun1(a); /調(diào)用復(fù)制構(gòu)造函數(shù)調(diào)用復(fù)制構(gòu)造函數(shù) return 0;return 0; 屏幕輸出:屏幕輸出:2013 2013 構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)51復(fù)制構(gòu)造函數(shù)復(fù)制構(gòu)造函數(shù)(例例) 當(dāng)函數(shù)的返回值是類對象時,系統(tǒng)自動調(diào)當(dāng)函數(shù)的返回值是類對象時,系統(tǒng)自動調(diào)用復(fù)制構(gòu)

38、造函數(shù)。例如:用復(fù)制構(gòu)造函數(shù)。例如:Student fun2() Student fun2() Student s(2011); Student s(2011); return s; / return s; /調(diào)用復(fù)制構(gòu)造函數(shù)調(diào)用復(fù)制構(gòu)造函數(shù) intint main() main() Student b; Student b; b = fun2(); b = fun2(); return 0; return 0; 構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)演示C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)52隱含的復(fù)制構(gòu)造函數(shù)隱含的復(fù)制構(gòu)造函數(shù)如果程序員沒有為類聲明復(fù)制構(gòu)造函如果程序員沒有為類聲明復(fù)制構(gòu)造函數(shù),則編譯

39、器自己生成一個隱含的復(fù)制構(gòu)數(shù),則編譯器自己生成一個隱含的復(fù)制構(gòu)造函數(shù)。造函數(shù)。這個構(gòu)造函數(shù)執(zhí)行的功能是:用作為這個構(gòu)造函數(shù)執(zhí)行的功能是:用作為初始值的對象的每個數(shù)據(jù)成員的值,初始初始值的對象的每個數(shù)據(jù)成員的值,初始化將要建立的對象的對應(yīng)數(shù)據(jù)成員?;瘜⒁⒌膶ο蟮膶?yīng)數(shù)據(jù)成員。構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)演示C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)53析構(gòu)函數(shù)析構(gòu)函數(shù) 完成對象被刪除前的一些清理工作。完成對象被刪除前的一些清理工作。 在對象的生存期結(jié)束的時刻系統(tǒng)自動調(diào)在對象的生存期結(jié)束的時刻系統(tǒng)自動調(diào)用它,然后再釋放此對象所屬的空間。用它,然后再釋放此對象所屬的空間。 如果程序中未聲明析構(gòu)函數(shù),編

40、譯器將如果程序中未聲明析構(gòu)函數(shù),編譯器將自動產(chǎn)生一個隱含的析構(gòu)函數(shù)。自動產(chǎn)生一個隱含的析構(gòu)函數(shù)。構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)54析構(gòu)函數(shù)的特點(diǎn)析構(gòu)函數(shù)的特點(diǎn) 析構(gòu)函數(shù)的參數(shù)表為空;析構(gòu)函數(shù)的參數(shù)表為空; 析構(gòu)函數(shù)沒有返回值;析構(gòu)函數(shù)沒有返回值; 析構(gòu)函數(shù)的名字是類名前加析構(gòu)函數(shù)的名字是類名前加; 析構(gòu)函數(shù)一般為公有成員函數(shù);析構(gòu)函數(shù)一般為公有成員函數(shù); 析構(gòu)函數(shù)不能重載。析構(gòu)函數(shù)不能重載。構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)演示C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)55類的應(yīng)用舉例類的應(yīng)用舉例(書書例例4-3)一圓形游泳池如圖所示,現(xiàn)在需在其周圍建一圓形游泳池如圖所示

41、,現(xiàn)在需在其周圍建一圓形過道,并在其四周圍上柵欄。柵欄價(jià)格為一圓形過道,并在其四周圍上柵欄。柵欄價(jià)格為35元元/米,過道造價(jià)為米,過道造價(jià)為20元元/平方米。過道寬度為平方米。過道寬度為3米,游泳池半徑由鍵盤輸入。要求編程計(jì)算并輸米,游泳池半徑由鍵盤輸入。要求編程計(jì)算并輸出過道和柵欄的造價(jià)。出過道和柵欄的造價(jià)。游泳池過道演示2演示1C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)5.5.類的組合類的組合56C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)57組合的概念組合的概念 類中的成員數(shù)據(jù)是另一個類的對象。類中的成員數(shù)據(jù)是另一個類的對象。 可以在已有抽象的基礎(chǔ)上實(shí)現(xiàn)更復(fù)雜可以在已有抽象的基礎(chǔ)上實(shí)現(xiàn)更復(fù)雜的抽象。的抽象。類類 的的

42、 組組 合合C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)58舉例舉例class Point class Point private:private: float x, y; / float x, y; /點(diǎn)的坐標(biāo)點(diǎn)的坐標(biāo)public:public: Point(float h, float v); / Point(float h, float v); /構(gòu)造函構(gòu)造函數(shù)數(shù) float getX(); /float getX(); /取取X X坐標(biāo)坐標(biāo) float getY(); / float getY(); /取取Y Y坐標(biāo)坐標(biāo) void draw(); /void draw(); /在在(x,y)(x,y)

43、處畫點(diǎn)處畫點(diǎn);/./.函數(shù)的實(shí)現(xiàn)略函數(shù)的實(shí)現(xiàn)略類類 的的 組組 合合C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)59class Line class Line private:private: Point p1, p2; /Point p1, p2; /線段的兩個端點(diǎn)線段的兩個端點(diǎn)public:public: Line(Point a, Point b); / Line(Point a, Point b); /構(gòu)造函數(shù)構(gòu)造函數(shù) void draw(void); /void draw(void); /畫出線段畫出線段;/./.函數(shù)的實(shí)現(xiàn)略函數(shù)的實(shí)現(xiàn)略C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)60類組合的構(gòu)造函數(shù)設(shè)計(jì)類組合的構(gòu)

44、造函數(shù)設(shè)計(jì) 原則:不僅要負(fù)責(zé)對本類中的基本類型成原則:不僅要負(fù)責(zé)對本類中的基本類型成員數(shù)據(jù)賦初值,也要對對象成員初始化。員數(shù)據(jù)賦初值,也要對對象成員初始化。 聲明形式:聲明形式:類名類名:類名類名( (對象成員所需的形參,本類成員形參對象成員所需的形參,本類成員形參) ) : :對象對象1(1(參數(shù)參數(shù)) ),對象,對象2(2(參數(shù)參數(shù)) ),. 本類初始化本類初始化 類類 的的 組組 合合C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)61類組合的構(gòu)造函數(shù)調(diào)用類組合的構(gòu)造函數(shù)調(diào)用 構(gòu)造函數(shù)調(diào)用順序:先調(diào)用內(nèi)嵌對象的構(gòu)造函數(shù)調(diào)用順序:先調(diào)用內(nèi)嵌對象的構(gòu)造函數(shù)(按內(nèi)嵌時的聲明順序,先聲構(gòu)造函數(shù)(按內(nèi)嵌時的聲明順序,

45、先聲明者先構(gòu)造)。然后調(diào)用本類的構(gòu)造函明者先構(gòu)造)。然后調(diào)用本類的構(gòu)造函數(shù)。(析構(gòu)函數(shù)的調(diào)用順序相反)數(shù)。(析構(gòu)函數(shù)的調(diào)用順序相反) 初始化列表中未出現(xiàn)的內(nèi)嵌對象,用默初始化列表中未出現(xiàn)的內(nèi)嵌對象,用默認(rèn)構(gòu)造函數(shù)(即無形參的)初始化認(rèn)構(gòu)造函數(shù)(即無形參的)初始化 系統(tǒng)自動生成的隱含的默認(rèn)構(gòu)造函數(shù)中,系統(tǒng)自動生成的隱含的默認(rèn)構(gòu)造函數(shù)中,內(nèi)嵌對象全部用默認(rèn)構(gòu)造函數(shù)初始化內(nèi)嵌對象全部用默認(rèn)構(gòu)造函數(shù)初始化類類 的的 組組 合合演示C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)62前向引用聲明前向引用聲明 類應(yīng)該先聲明,后使用類應(yīng)該先聲明,后使用 如果需要在某個類的聲明之前,引用該如果需要在某個類的聲明之前,引用該類,則

46、應(yīng)進(jìn)行前向引用聲明。類,則應(yīng)進(jìn)行前向引用聲明。 前向引用聲明只為程序引入一個標(biāo)識符,前向引用聲明只為程序引入一個標(biāo)識符,但具體聲明在其他地方。但具體聲明在其他地方。類類 的的 組組 合合C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)63前向引用聲明舉例前向引用聲明舉例class B; /class B; /前向引用聲明前向引用聲明class A class A public:public: void f(B b); void f(B b);class B class B public:public: void g(A a); void g(A a);類類 的的 組組 合合C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)64前向引用

47、聲明注意事項(xiàng)前向引用聲明注意事項(xiàng) 使用前向引用聲明雖然可以解決一些問題,但它使用前向引用聲明雖然可以解決一些問題,但它并不是萬能的。需要注意的是,盡管使用了前向并不是萬能的。需要注意的是,盡管使用了前向引用聲明,但是在提供一個完整的類聲明之前,引用聲明,但是在提供一個完整的類聲明之前,不能聲明該類的對象,也不能在內(nèi)聯(lián)成員函數(shù)中不能聲明該類的對象,也不能在內(nèi)聯(lián)成員函數(shù)中使用該類的對象。請看下面的程序段:使用該類的對象。請看下面的程序段:class Fred; /class Fred; /前向引用聲明前向引用聲明class Barney class Barney Fred x; / Fred x;

48、 /錯誤:類錯誤:類FredFred的聲明尚不完善的聲明尚不完善;class Fred class Fred Barney y; Barney y;類類 的的 組組 合合C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)65前向引用聲明注意事項(xiàng)前向引用聲明注意事項(xiàng)class Fred;class Fred;/前向引用聲明前向引用聲明 class Barney class Barney public:public: void method() void method() x.yabbaDabbaDo(); x.yabbaDabbaDo();/錯誤:錯誤:FredFred類的對象在定義之前被類的對象在定義之前被使用使用

49、 private: private: Fred &x;/ Fred &x;/正確,經(jīng)過前向引用聲明,可以聲明正確,經(jīng)過前向引用聲明,可以聲明FredFred類的對類的對象引用象引用; class Fred class Fred public:public: void yabbaDabbaDo(); void yabbaDabbaDo();private:private: Barney &y; Barney &y; ; 類類 的的 組組 合合C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)66前向引用聲明注意事項(xiàng)前向引用聲明注意事項(xiàng) 應(yīng)該記?。寒?dāng)你使用前向引用聲明時,應(yīng)該記?。寒?dāng)你使

50、用前向引用聲明時,你只能使用被聲明的符號,而不能涉及你只能使用被聲明的符號,而不能涉及類的任何細(xì)節(jié)。類的任何細(xì)節(jié)。類類 的的 組組 合合C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)6.UML6.UML簡介簡介67C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)68UML簡介簡介 Unified Modeling Language(UML,Unified Modeling Language(UML,統(tǒng)一建統(tǒng)一建模語言模語言) )是一種可視化的面向?qū)ο蠼UZ言。是一種可視化的面向?qū)ο蠼UZ言。 UMLUML定義了建立系統(tǒng)模型所需的概念并給出定義了建立系統(tǒng)模型所需的概念并給出其可視化表示法;但是它并不介紹如何進(jìn)其可視化表示法;但是它并

51、不介紹如何進(jìn)行系統(tǒng)建模。行系統(tǒng)建模。 UMLUML用于建立系統(tǒng)的分析模型和設(shè)計(jì)模型,用于建立系統(tǒng)的分析模型和設(shè)計(jì)模型,而不是用于編程。而不是用于編程。UML圖形標(biāo)識圖形標(biāo)識C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)69UML中的關(guān)系中的關(guān)系 依賴(依賴(DependenciesDependencies) 關(guān)聯(lián)(關(guān)聯(lián)(AssociationAssociation) 泛化(泛化(GeneralizationGeneralization) 實(shí)現(xiàn)(實(shí)現(xiàn)(RealizationRealization)UML圖形標(biāo)識圖形標(biāo)識C+語言程序設(shè)計(jì)浙江工業(yè)大學(xué)70UML中的中的9種圖種圖 類圖(類圖(Class diagramClass diagram) 對象圖(對象圖(Object diagramObject diagram) 用例圖(用例圖(Use case diagramUse case diagram) 順序圖(順序圖(Sequence diagramSequence diagram) 協(xié)作圖(協(xié)作圖(Collaboration diagramCollaboration diag

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論