![第章面向?qū)ο蟮某绦蛟O(shè)計(jì)ppt課件_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/18b07ce9-6a4d-4e98-a137-f64d0a578638/18b07ce9-6a4d-4e98-a137-f64d0a5786381.gif)
![第章面向?qū)ο蟮某绦蛟O(shè)計(jì)ppt課件_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/18b07ce9-6a4d-4e98-a137-f64d0a578638/18b07ce9-6a4d-4e98-a137-f64d0a5786382.gif)
![第章面向?qū)ο蟮某绦蛟O(shè)計(jì)ppt課件_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/18b07ce9-6a4d-4e98-a137-f64d0a578638/18b07ce9-6a4d-4e98-a137-f64d0a5786383.gif)
![第章面向?qū)ο蟮某绦蛟O(shè)計(jì)ppt課件_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/18b07ce9-6a4d-4e98-a137-f64d0a578638/18b07ce9-6a4d-4e98-a137-f64d0a5786384.gif)
![第章面向?qū)ο蟮某绦蛟O(shè)計(jì)ppt課件_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/18b07ce9-6a4d-4e98-a137-f64d0a578638/18b07ce9-6a4d-4e98-a137-f64d0a5786385.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第7章章 面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì) 本章要點(diǎn): 面向?qū)ο蟮母靖拍?類的定義與對(duì)象的聲明 構(gòu)造函數(shù)和析構(gòu)函數(shù) 類的靜態(tài)成員和實(shí)例成員 方法重載及運(yùn)算符重載的編程實(shí)現(xiàn) 類的承繼與多態(tài)性的編程實(shí)現(xiàn) 類的屬性的實(shí)現(xiàn)7.1 循序漸進(jìn)學(xué)實(shí)際 7.1.1 面向?qū)ο蟪绦蛟O(shè)計(jì)概述面向?qū)ο蟪绦蛟O(shè)計(jì)概述 1面向?qū)ο蟪绦蛟O(shè)計(jì)的由來面向?qū)ο蟪绦蛟O(shè)計(jì)的由來 面向?qū)ο蟮某绦蛟O(shè)計(jì)是一種基于構(gòu)造分面向?qū)ο蟮某绦蛟O(shè)計(jì)是一種基于構(gòu)造分析的、以數(shù)據(jù)為中心的程序設(shè)計(jì)方法。析的、以數(shù)據(jù)為中心的程序設(shè)計(jì)方法。面向?qū)ο蟮某绦蛟O(shè)計(jì)方法總體思緒是:面向?qū)ο蟮某绦蛟O(shè)計(jì)方法總體思緒是:將數(shù)據(jù)及處置這些數(shù)據(jù)的操作都封裝將數(shù)據(jù)及處置這些
2、數(shù)據(jù)的操作都封裝Encapsulation到一個(gè)稱為類到一個(gè)稱為類Class的數(shù)據(jù)構(gòu)造中,在程序中運(yùn)用的數(shù)據(jù)構(gòu)造中,在程序中運(yùn)用的是類的實(shí)例的是類的實(shí)例對(duì)象。對(duì)象是代碼與對(duì)象。對(duì)象是代碼與數(shù)據(jù)的集合,是封裝好了的一個(gè)整體,數(shù)據(jù)的集合,是封裝好了的一個(gè)整體,對(duì)象具有一定的功能。也就是說對(duì)象是對(duì)象具有一定的功能。也就是說對(duì)象是具有一定功能的程序?qū)嶓w。程序是由一具有一定功能的程序?qū)嶓w。程序是由一個(gè)個(gè)對(duì)象構(gòu)成的,對(duì)象之間經(jīng)過一定的個(gè)個(gè)對(duì)象構(gòu)成的,對(duì)象之間經(jīng)過一定的“相互操作傳送音訊,在音訊的作用下,相互操作傳送音訊,在音訊的作用下,完成特定的功能。完成特定的功能。 2面向?qū)ο蟪绦蛟O(shè)計(jì)的根本概念 1類和
3、對(duì)象 通常把具有同樣性質(zhì)和功能的東西所構(gòu)成的集合叫作類。 2屬性、方法與事件 屬性是對(duì)象的形狀和特點(diǎn)。 方法是對(duì)象可以執(zhí)行的一些操作,它表達(dá)了對(duì)象的功能。 事件是對(duì)象可以識(shí)別和呼應(yīng)的某些操作 。3封裝 所謂的封裝,就是將用來描畫客觀事物的一組數(shù)據(jù)和操作組裝在一同,構(gòu)成一個(gè)類。 4承繼 類之間除了有相互交流或訪問的關(guān)系以外,還能夠存在著一種特殊的關(guān)系,這就是承繼。在Visual C#中只支持單承繼,即一個(gè)派生類只能有一個(gè)基類。5重載 重載指的是方法稱號(hào)一樣,但假設(shè)參數(shù)不同,就會(huì)有不同的詳細(xì)實(shí)現(xiàn)。重載主要有兩類:方法重載及運(yùn)算符重載。 6多態(tài)性 所謂多態(tài)性就是在程序運(yùn)轉(zhuǎn)時(shí),面向?qū)ο蟮难哉Z會(huì)自動(dòng)判別
4、對(duì)象的派生類型,并調(diào)用相應(yīng)的方法。 7.1.2 7.1.2 類和對(duì)象的聲明類和對(duì)象的聲明 1類的聲明格式:類修飾符 class 類名:基類類名成員定義列表; 【例7-1】 定義一個(gè)Student類,用來對(duì)學(xué)生的信息和功能進(jìn)展描畫。假設(shè)學(xué)生具有學(xué)號(hào)、姓名、年齡、性別、平均成果等特征,并且具有設(shè)置學(xué)生特征和顯示學(xué)生特征的功能。2對(duì)象的聲明 格式:類名實(shí)例名=new 類名(參數(shù)); 3類的成員1類成員的分類 類的詳細(xì)成員如下。 常量:用來定義與類相關(guān)的常量值。 字段:類中的變量,相當(dāng)于C+中的成員變量。 類型:用來定義只能在類中運(yùn)用的部分類型。 方法:完成類中各種計(jì)算或功能的操作。 屬性:定義類的特
5、征,并對(duì)它們提供讀、寫操作。 事件:由類產(chǎn)生的通知,用于闡明發(fā)生了什么事情。 索引器:允許編程人員在訪問數(shù)組時(shí),經(jīng)過索引器訪問類的多個(gè)實(shí)例。又稱下標(biāo)指示器。 運(yùn)算符:定義類的實(shí)例能運(yùn)用的運(yùn)算符。 構(gòu)造函數(shù):在類被實(shí)例化時(shí)首先執(zhí)行的函數(shù),主要是完成對(duì)象初始化操作。 析構(gòu)函數(shù):在對(duì)象被銷毀之前最后執(zhí)行的函數(shù),主要是完成對(duì)象終了時(shí)的收尾操作。2類成員的可訪問性 在編寫程序時(shí),可以對(duì)類的成員運(yùn)用不同的訪問修飾符,從而定義它們的訪問級(jí)別,即類成員的可訪問性(Accessibility)。 在C#中,根據(jù)類成員的可訪問性可以把類成員分成四類,分別是公有成員(public)、私有成員(private)、維護(hù)
6、成員(protected)、內(nèi)部成員(internal)。3類的靜態(tài)成員和實(shí)例成員 類的成員又可以分成靜態(tài)成員和非靜態(tài)成員。在聲明成員時(shí),假設(shè)在語句前加上static保管字,那么該成員是靜態(tài)成員,假設(shè)沒有static保管字,那么成員是非靜態(tài)成員。二者最重要的區(qū)別是:靜態(tài)成員屬于類一切,非靜態(tài)成員屬于類的實(shí)例一切,所以又稱實(shí)例成員。 7.1.3 7.1.3 類的構(gòu)造函數(shù)和析構(gòu)函數(shù)類的構(gòu)造函數(shù)和析構(gòu)函數(shù) 1構(gòu)造函數(shù) 構(gòu)造函數(shù)主要用來為對(duì)象分配存儲(chǔ)空間,完成初始化操作如給類的成員變量賦值等。在C#中,類的構(gòu)造函數(shù)遵照以下規(guī)定。1構(gòu)造函數(shù)的函數(shù)名和類的稱號(hào)一樣。2當(dāng)某個(gè)類沒有構(gòu)造函數(shù)時(shí),系統(tǒng)將自動(dòng)為其
7、創(chuàng)建構(gòu)造函數(shù),這種構(gòu)造函數(shù)稱為默許構(gòu)造函數(shù)。如例7-2中默許的構(gòu)造函數(shù)為: Example1() ; 3構(gòu)造函數(shù)的訪問修飾符總是public。假設(shè)是private,那么表示這個(gè)類不能被實(shí)例化,這通常用于只含有靜態(tài)成員的類中。 4構(gòu)造函數(shù)由于不需求顯式調(diào)用,因此不用聲明前往類型。 5構(gòu)造函數(shù)可以帶參數(shù)也可以不帶參數(shù)。 2析構(gòu)函數(shù) 析構(gòu)函數(shù)在對(duì)象銷毀時(shí)被調(diào)用,常用來釋放對(duì)象占用的存儲(chǔ)空間。析構(gòu)函數(shù)具有以下特點(diǎn)。1析構(gòu)函數(shù)不能帶有參數(shù)。2析構(gòu)函數(shù)不能擁有訪問修飾符。 3不能顯式地調(diào)用析構(gòu)函數(shù)。4析構(gòu)函數(shù)的命名規(guī)那么是在類名前加上一個(gè)“號(hào)。如上例的Example1類的析構(gòu)函數(shù)為: Example1()
8、 ;5析構(gòu)函數(shù)在對(duì)象銷毀時(shí)自動(dòng)調(diào)用?!纠?-3】 類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的演示。程序代碼詳見例7-3執(zhí)行結(jié)果 7.1.4 7.1.4 類的方法及方法的重載類的方法及方法的重載 1方法的定義 格式:方法修飾符 前往值類型 方法名(參數(shù)列表) 方法實(shí)現(xiàn)部分; 2靜態(tài)方法和非靜態(tài)方法 對(duì)于靜態(tài)方法和非靜態(tài)方法,只需抓住以下幾點(diǎn):1靜態(tài)方法屬于類一切,非靜態(tài)方法屬于類定義的對(duì)象一切;2非靜態(tài)方法可以訪問類中包括靜態(tài)成員在內(nèi)的一切成員,而靜態(tài)方法只能訪問類中的靜態(tài)成員。 【例7-4】 靜態(tài)方法和動(dòng)態(tài)方法的演示。請(qǐng)察看并分析以下程序的執(zhí)行結(jié)果。程序代碼詳見例7-4執(zhí)行結(jié)果 3參數(shù)數(shù)組 關(guān)于參數(shù)數(shù)組,需掌握
9、以下幾點(diǎn)。1假設(shè)形參表中含一個(gè)參數(shù)數(shù)組,那么該參數(shù)數(shù)組必需位于形參列表的最后;2參數(shù)數(shù)組必需是一維數(shù)組;3不允許將params修飾符與ref和out修飾符組合起來運(yùn)用;4與參數(shù)數(shù)組對(duì)應(yīng)的實(shí)參可以是同一類型的數(shù)組名,也可以是恣意多個(gè)與該數(shù)組的元素屬于同一類型的變量;5假設(shè)實(shí)參是數(shù)組那么按援用傳送,假設(shè)實(shí)參是變量或表達(dá)式那么按值傳送。 【例7-5】 參數(shù)數(shù)組的演示。請(qǐng)察看并分析以下程序的執(zhí)行結(jié)果。 程序代碼詳見例7-5 執(zhí)行結(jié)果 4方法的重載 方法重載是指同樣的一個(gè)方法名,有多種不同的實(shí)現(xiàn)方法。方法重載的格式是在一個(gè)類中兩次或多次定義同名的方法,這些同名的方法包括從基類承繼而來的方法,這些方法稱號(hào)
10、一樣,但每個(gè)方法的參數(shù)類型或個(gè)數(shù)不同,從而便于在用戶調(diào)用方法時(shí)系統(tǒng)可以自動(dòng)識(shí)別應(yīng)調(diào)用的方法。 【例7-6】 方法重載的演示。請(qǐng)察看并分析以下程序的執(zhí)行結(jié)果。 程序代碼詳見例7-6執(zhí)行結(jié)果 7.1.5 7.1.5 運(yùn)算符重載運(yùn)算符重載 在C#中,運(yùn)算符重載在類中進(jìn)展聲明,聲明的格式如下。格式:前往值類型 operator 運(yùn)算符(運(yùn)算對(duì)象列表) 重載的實(shí)現(xiàn)部分; ;在C#中,可以重載的運(yùn)算符主要有:+ - ! + - true false* / % & | = != =不能重載的運(yùn)算符有: = & | ?: new typeof sizeof is【例7-7】 運(yùn)算符重載的演示。請(qǐng)察看并分析以下
11、程序的執(zhí)行結(jié)果。 程序代碼詳見例7-7 執(zhí)行結(jié)果 7.1.6 7.1.6 域與屬性域與屬性 1域 域又稱字段,它是類的一個(gè)成員,這個(gè)成員代表與對(duì)象或類相關(guān)的變量。域的定義格式如下。格式:域修飾符 域類型 域名; 【例7-8】 域的演示。請(qǐng)察看并分析以下程序的執(zhí)行結(jié)果。程序代碼詳見例7-8執(zhí)行結(jié)果 2屬性 屬性是對(duì)現(xiàn)實(shí)世界中實(shí)體特征的籠統(tǒng),它提供了一種對(duì)類或?qū)ο筇匦赃M(jìn)展訪問的機(jī)制。屬性的聲明格式如下。格式:屬性修飾符 類型闡明符 屬性名 訪問聲明 【例7-9】 屬性的演示。請(qǐng)察看并分析以下程序的執(zhí)行結(jié)果。 程序代碼詳見例7-9執(zhí)行結(jié)果 7.1.7 this7.1.7 this關(guān)鍵字關(guān)鍵字 thi
12、s關(guān)鍵字用來援用類的當(dāng)前實(shí)例,成員經(jīng)過this關(guān)鍵字可以知道本人屬于哪一個(gè)實(shí)例。this關(guān)鍵字只能用在類的構(gòu)造函數(shù)、類的實(shí)例方法中,在其它地方如靜態(tài)方法中運(yùn)用this關(guān)鍵字均是錯(cuò)誤的。 7.1.8 7.1.8 類的承繼類的承繼 承繼是面向?qū)ο蟪绦蛟O(shè)計(jì)中實(shí)現(xiàn)代碼重用的重要機(jī)制之一,它來源于現(xiàn)實(shí)世界中事物之間的聯(lián)絡(luò)。 類的承繼的根本格式與功能如下。 格式: class 派生類類名:基類類名 成員聲明列表; 【例7-10】 類承繼的演示。請(qǐng)察看并分析以下程序的執(zhí)行結(jié)果。 程序代碼詳見例7-10 執(zhí)行結(jié)果 7.1.9 7.1.9 多態(tài)性多態(tài)性 多態(tài)性是指同一操作作用于不同類的實(shí)例,這些類對(duì)它進(jìn)展不同的
13、解釋,從而產(chǎn)生不同的執(zhí)行結(jié)果的景象。在C#中有兩種多態(tài)性:編譯時(shí)的多態(tài)性和運(yùn)轉(zhuǎn)時(shí)的多態(tài)性。 運(yùn)轉(zhuǎn)時(shí)的多態(tài)性是經(jīng)過承繼和虛成員來實(shí)現(xiàn)的。運(yùn)轉(zhuǎn)時(shí)的多態(tài)性是指系統(tǒng)在編譯時(shí)不確定選用哪個(gè)重載方法,而是直到程序運(yùn)轉(zhuǎn)時(shí),才根據(jù)實(shí)踐情況決議采用哪個(gè)重載方法。編譯時(shí)的多態(tài)性具有運(yùn)轉(zhuǎn)速度快的特點(diǎn),而運(yùn)轉(zhuǎn)時(shí)的多態(tài)性那么具有極大的靈敏性。【例7-11】 虛函數(shù)與多態(tài)性的演示。請(qǐng)察看并分析以下程序的執(zhí)行結(jié)果。程序代碼詳見例7-11執(zhí)行結(jié)果 7.1.10 7.1.10 密封類與籠統(tǒng)類密封類與籠統(tǒng)類 把一個(gè)類聲明為密封類的緣由是為了防止該類被其它類承繼,密封類的聲明方法是在類名前加上sealed修飾符。 籠統(tǒng)類表示一種籠
14、統(tǒng)的概念,普通用于為派生類提供公共接口。在聲明類時(shí),在類名前有abstract修飾符那么表示該類為籠統(tǒng)類。籠統(tǒng)類只能作為其他類的基類,不能被實(shí)例化,在籠統(tǒng)類中可以包含籠統(tǒng)方法和籠統(tǒng)訪問器。 7.2 典型實(shí)例練才干 7.2.1 典型實(shí)例一:典型實(shí)例一:Time類的創(chuàng)類的創(chuàng)建與演示建與演示 【實(shí)例標(biāo)題】【實(shí)例標(biāo)題】 編寫一個(gè)名為編寫一個(gè)名為Time1的類,的類,該類可以存放時(shí)間信息,并且具該類可以存放時(shí)間信息,并且具有設(shè)置時(shí)間和顯示時(shí)間的功能。有設(shè)置時(shí)間和顯示時(shí)間的功能。然后編程對(duì)該類進(jìn)展測(cè)試。測(cè)試然后編程對(duì)該類進(jìn)展測(cè)試。測(cè)試界面如圖界面如圖7-1所示。所示。圖7-1 時(shí)鐘類測(cè)試界面 7.2.2
15、7.2.2 典型實(shí)例二:復(fù)數(shù)典型實(shí)例二:復(fù)數(shù)“* *運(yùn)算及復(fù)數(shù)值運(yùn)算及復(fù)數(shù)值設(shè)置的實(shí)現(xiàn)設(shè)置的實(shí)現(xiàn) 【實(shí)例標(biāo)題】 編寫一個(gè)復(fù)數(shù)類,該復(fù)數(shù)類具有以下功能:1乘法運(yùn)算的功能。如a和b分別是該復(fù)數(shù)類的兩個(gè)實(shí)例,那么可以進(jìn)展a*b的運(yùn)算,運(yùn)算結(jié)果是一個(gè)復(fù)數(shù),該復(fù)數(shù)是復(fù)數(shù)a和復(fù)數(shù)b的乘積。2對(duì)復(fù)數(shù)值進(jìn)展設(shè)置的功能,有兩種設(shè)置方法,分別對(duì)復(fù)數(shù)的實(shí)部虛部為0進(jìn)展設(shè)置、對(duì)復(fù)數(shù)的實(shí)部和虛部同時(shí)進(jìn)展設(shè)置。然后編程進(jìn)展驗(yàn)證。驗(yàn)證界面如圖7-2所示。 圖7-2 復(fù)數(shù)“*運(yùn)算及復(fù)數(shù)值設(shè)置的運(yùn)轉(zhuǎn)界面 7.3 上機(jī)練習(xí)重運(yùn)用 7.3.1 上機(jī)練習(xí)一:棧模型的實(shí)現(xiàn)上機(jī)練習(xí)一:棧模型的實(shí)現(xiàn) 【練習(xí)標(biāo)題】【練習(xí)標(biāo)題】 棧是一種重要
16、的數(shù)據(jù)構(gòu)造,在內(nèi)存中占用棧是一種重要的數(shù)據(jù)構(gòu)造,在內(nèi)存中占用延續(xù)的存儲(chǔ)單元。棧有兩個(gè)端點(diǎn),固定延續(xù)的存儲(chǔ)單元。棧有兩個(gè)端點(diǎn),固定的棧底和浮動(dòng)的棧頂。為指示棧頂位置的棧底和浮動(dòng)的棧頂。為指示棧頂位置還應(yīng)設(shè)一個(gè)指示成員變量稱為棧頂指還應(yīng)設(shè)一個(gè)指示成員變量稱為棧頂指示器。棧有兩種根本操作:示器。棧有兩種根本操作:push壓壓棧和棧和pop出棧,壓棧是向棧頂位出棧,壓棧是向棧頂位置寫入一個(gè)元素,然后使棧頂指示器加置寫入一個(gè)元素,然后使棧頂指示器加1,出棧是先使棧頂指示器減出棧是先使棧頂指示器減1,再把該位置,再把該位置的元素讀出來。棧及其操作模型如圖的元素讀出來。棧及其操作模型如圖7-3所示,所示,sp代表?xiàng)m斨甘酒?。?qǐng)編程實(shí)現(xiàn)代表?xiàng)m斨甘酒鳌U?qǐng)編程實(shí)現(xiàn)棧的模型并對(duì)之進(jìn)展測(cè)試,測(cè)試的界面棧的模型并對(duì)之進(jìn)展測(cè)試,測(cè)試的界面如圖如圖7-4所示。所示。圖
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑外墻保溫工程節(jié)能評(píng)估與合同能源管理協(xié)議
- 全包購車合同范本
- 2025年度健身器材售后服務(wù)與技術(shù)支持合同
- 兒童攝影模特合同范例
- 高三生物群落的演替教案范文三篇
- 學(xué)生保險(xiǎn)申請(qǐng)書范文
- 2025年合金鐵粉項(xiàng)目投資可行性研究分析報(bào)告
- 2025年度二零二五年度學(xué)校教育保險(xiǎn)產(chǎn)品代理合同
- 2025年電子底板項(xiàng)目可行性研究報(bào)告
- 勞務(wù)解聘合同范本
- 源代碼審計(jì)報(bào)告模板
- 施工組織設(shè)計(jì)模板
- 含碘對(duì)比劑靜脈外滲護(hù)理管理實(shí)踐指南
- 萃取技術(shù) 多級(jí)逆流萃取
- 部編版小學(xué)五年級(jí)語文教材培訓(xùn)課件【部編】
- 盆景造型經(jīng)驗(yàn)
- 能力不足方面存在的問題及整改措施【9篇】
- 悟真篇-薛道光注
- 重大危險(xiǎn)源公示牌(完整)-2
- 物理學(xué)史中國(guó)古代物理學(xué)
- 初一英語英語閱讀理解專項(xiàng)訓(xùn)練15篇
評(píng)論
0/150
提交評(píng)論