版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《C#程序設(shè)計(jì)教程(第6版)》課程教案課題:第六章?面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)目的:1.熟悉面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念,理解類、對(duì)象、構(gòu)造函數(shù)和析構(gòu)函數(shù)的意義2.掌握方法、屬性、索引的用法,以及委托和事件的聲明與調(diào)用3.能夠用C#進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)課型:新授課課時(shí):本章安排2個(gè)課時(shí)。教學(xué)重點(diǎn):重點(diǎn):能獨(dú)立聲明類、創(chuàng)建對(duì)象、調(diào)用方法與屬性,并借助構(gòu)造函數(shù)完成對(duì)象初始化。教學(xué)難點(diǎn):難點(diǎn):通過(guò)對(duì)象和類,了解“特殊”和“一般”的辯證關(guān)系。教學(xué)過(guò)程:教學(xué)形式:講授課,教學(xué)組織采用課堂整體講授和分組演示。教學(xué)媒體:采用啟發(fā)式教學(xué)、案例教學(xué)等教學(xué)方法。教學(xué)手段采用多媒體課件、視頻等媒體技術(shù)。板書設(shè)計(jì):本課標(biāo)題面向?qū)ο蟪绦蛟O(shè)計(jì)課次1授課方式理論課□討論課□習(xí)題課□其他□課時(shí)安排2學(xué)分共2分授課對(duì)象普通高等院校學(xué)生任課教師教材及參考資料1.《C#程序設(shè)計(jì)教程》;電子工業(yè)出版社。2.本教材配套視頻教程及學(xué)習(xí)檢查等資源。3.與本課程相關(guān)的其他資源。教學(xué)基本內(nèi)容教學(xué)方法及教學(xué)手段項(xiàng)目情境上課鈴響,教室燈光驟暗,屏幕亮起“虛擬寵物領(lǐng)養(yǎng)臺(tái)”。教師點(diǎn)擊“領(lǐng)養(yǎng)”按鈕,后臺(tái)瞬間new出一只萌犬對(duì)象:名字隨機(jī)、年齡0、饑餓值100。隨后教師現(xiàn)場(chǎng)修改饑餓值,小狗立刻露出“餓扁”表情——同學(xué)們第一次看到“屬性set訪問(wèn)器”驅(qū)動(dòng)UI變化的魔法。接著,教師又領(lǐng)養(yǎng)第二只狗,兩只狗同時(shí)接受“喂食”方法調(diào)用,卻只有被選中的那一只搖尾巴,大家直觀感受到“同一方法、不同對(duì)象、不同表現(xiàn)”的多態(tài)魅力。最后,教師點(diǎn)擊“放生”,對(duì)象被賦null,GC回收前析構(gòu)函數(shù)彈出“Bye~”動(dòng)畫,短短3分鐘,類的生命周期、封裝、繼承與多態(tài)盡收眼底,學(xué)生帶著“我也能寫個(gè)電子寵物”的沖動(dòng)進(jìn)入正式學(xué)習(xí)。參考以下形式:1.銜接導(dǎo)入2.懸念導(dǎo)入3.情景導(dǎo)入4.激疑導(dǎo)入5.演示導(dǎo)入6.實(shí)例導(dǎo)入7.其他形式本章基本知識(shí)匯總一、面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念面向?qū)ο蟮某绦蛟O(shè)計(jì)(Object-OrientedProgramming,OOP)強(qiáng)調(diào)直接以問(wèn)題域(現(xiàn)實(shí)世界)中的事物為中心來(lái)思考和認(rèn)識(shí)問(wèn)題,并按照這些事物的本質(zhì)特性將它們抽象為對(duì)象,作為構(gòu)成軟件系統(tǒng)的基礎(chǔ)。這樣,在現(xiàn)實(shí)世界中有哪些值得注意的事物,在程序中就有哪些與之對(duì)應(yīng)的對(duì)象。由于程序與現(xiàn)實(shí)世界間具有極強(qiáng)的對(duì)應(yīng)關(guān)系,因此,程序可以用對(duì)象的概念自然地進(jìn)行“思考”,從而大大減少了軟件開發(fā)的難度。從程序設(shè)計(jì)本身的角度來(lái)看,它將數(shù)據(jù)和數(shù)據(jù)的操作方法放在一起,作為一個(gè)相互依存、不可分離的整體——對(duì)象。對(duì)同類型的對(duì)象抽象出共性可形成類。類中的大多數(shù)數(shù)據(jù)只能用本類的方法進(jìn)行處理,但通過(guò)一個(gè)簡(jiǎn)單的外部接口類可與外界發(fā)生關(guān)系,對(duì)象之間也可通過(guò)消息進(jìn)行通信。在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,包括類、對(duì)象、類的屬性、類的方法、派生和繼承、多態(tài)性、封裝等基本概念。1.類在面向?qū)ο蟮睦碚撝校悾╟lass)是對(duì)具有相同特征的一類事物的抽象(歸納)。顯然,用戶絕對(duì)不會(huì)把掌上電腦同MP3播放器混淆,因?yàn)樗鼈兎謩e屬于兩個(gè)不同的類:電子計(jì)算機(jī)類和隨身聽設(shè)備類。2.對(duì)象在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,類通常被當(dāng)作一種模板,對(duì)象是通過(guò)模板生成的??梢院?jiǎn)單地這樣理解,對(duì)象是使用類這個(gè)“模子”一個(gè)個(gè)地“印制”出來(lái)的,一個(gè)類可以“印制”多個(gè)對(duì)象。3.類的屬性可見,通過(guò)對(duì)象的不同特征可以區(qū)分同一個(gè)類的不同對(duì)象。類的屬性(property)是用來(lái)保存對(duì)象的特征的。4.類的方法類的方法(method)代表一類事物所具備的動(dòng)作,可以理解為一種動(dòng)態(tài)特征。類的方法(某類對(duì)象所具有的共同的動(dòng)作)是不會(huì)自動(dòng)發(fā)生的,只有在某種條件滿足(或者說(shuō)某種事件發(fā)生)時(shí)才會(huì)被激發(fā)。5.派生和繼承繼承和派生是類之間同一種關(guān)系的不同表達(dá)方法。面向?qū)ο蟮某绦蛟O(shè)計(jì)允許開發(fā)人員對(duì)類進(jìn)行繼承(inheritance),繼承后的類仍具有被繼承類的特點(diǎn),同時(shí)又會(huì)出現(xiàn)新的特點(diǎn)。在類的繼承中,被繼承的類被稱為基類(又稱父類),由基類繼承的類被稱為派生類(又稱子類)。派生類自動(dòng)獲得基類的所有屬性和方法,而且可以在派生類中添加新的屬性和方法。6.多態(tài)性多態(tài)(polymorphism)是指同一個(gè)類的對(duì)象在不同的場(chǎng)合中能夠表現(xiàn)出不同的行為和特征。7.封裝封裝(encapsulation)就是所謂的信息隱藏。封裝提供了外界與對(duì)象交互的控制機(jī)制,設(shè)計(jì)者和實(shí)施者可以公開外界需要直接操作的屬性和行為,而把其他的屬性和行為隱藏在對(duì)象內(nèi)部。二、類和對(duì)象在C#中,所有的內(nèi)容都被封裝在類中,類是C#的基礎(chǔ),每個(gè)類都是通過(guò)屬性、方法及其他成員來(lái)表達(dá)事物的狀態(tài)和行為的。事實(shí)上,編寫C#程序的主要任務(wù)就是定義各種類及類中的各種成員。1.類的聲明類是C#的一種自定義數(shù)據(jù)類型,聲明類的一般語(yǔ)法格式如下。[類修飾符]class類名[:基類類名]{類的成員;}[;]2.類的成員類的成員可以分為兩大類:類本身所聲明的和從基類中繼承的。在C#中,按照類的成員是否為函數(shù)可將其分為兩種:一種不以函數(shù)形式體現(xiàn),稱為成員變量;另一種以函數(shù)形式體現(xiàn),稱為成員函數(shù)。類成員的訪問(wèn)修飾符類的每個(gè)成員都需要設(shè)定訪問(wèn)修飾符,不同的修飾符會(huì)導(dǎo)致成員的訪問(wèn)權(quán)限不同。靜態(tài)成員與非靜態(tài)成員類的成員要么是靜態(tài)成員,要么是非靜態(tài)成員(又稱實(shí)例成員)。聲明一個(gè)靜態(tài)成員只需要在聲明成員的語(yǔ)句前加上static保留字,如果沒有這個(gè)保留字就默認(rèn)其為非靜態(tài)成員。二者的區(qū)別在于,靜態(tài)成員為類所有,而非靜態(tài)成員為類的對(duì)象所有;靜態(tài)成員只能由類訪問(wèn),而非靜態(tài)成員只能由對(duì)象訪問(wèn)。3.對(duì)象的聲明C#程序定義類的最終目的是在創(chuàng)建類的對(duì)象后使用它。(1)聲明對(duì)象名的一般語(yǔ)法格式如下。類名對(duì)象名;(2)使用new關(guān)鍵字建立類的實(shí)例,一般語(yǔ)法格式如下。對(duì)象名=new類名();4.對(duì)象初始化器對(duì)象初始化器功能強(qiáng)大,可以幫助開發(fā)人員更加容易地將對(duì)象添加到集合中。作為開發(fā)人員,利用對(duì)象初始化器就能以更簡(jiǎn)潔的方式來(lái)定義對(duì)象,并在初始化對(duì)象后,將其添加到集合中。三、構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)是當(dāng)類實(shí)例化時(shí)首先執(zhí)行的函數(shù);析構(gòu)函數(shù)是當(dāng)實(shí)例(對(duì)象)從內(nèi)存中銷毀前最后執(zhí)行的函數(shù)。這兩個(gè)函數(shù)的執(zhí)行是無(wú)條件的,并且不需要開發(fā)人員手動(dòng)干預(yù)。1.構(gòu)造函數(shù)在C#中,構(gòu)造函數(shù)是特殊的成員函數(shù),它主要用于為對(duì)象分配空間,完成初始化工作。對(duì)于值類型變量自動(dòng)初始化為其本身的默認(rèn)值,數(shù)值類型變量自動(dòng)初始化為0,布爾類型變量自動(dòng)初始化為false。而對(duì)于所有引用類型的變量,自動(dòng)初始化為其默認(rèn)值null。2.析構(gòu)函數(shù)析構(gòu)函數(shù)也是類的特殊成員函數(shù),它主要用于釋放類實(shí)例。析構(gòu)函數(shù)的特殊性表現(xiàn)在以下4個(gè)方面。(1)析構(gòu)函數(shù)的名字與類名相同,但它前面需要加一個(gè)波浪線符號(hào)“~”。(2)析構(gòu)函數(shù)不能帶參數(shù),也沒有返回值。(3)當(dāng)撤銷對(duì)象時(shí),自動(dòng)調(diào)用析構(gòu)函數(shù)。(4)析構(gòu)函數(shù)不能被繼承,也不能被重載。四、方法1.方法的定義與調(diào)用方法是類中用于計(jì)算或進(jìn)行其他操作的函數(shù)成員。(1)方法的定義方法由方法頭和方法體組成,其一般語(yǔ)法格式如下。修飾符返回值類型方法名(形式參數(shù)列表){方法體各語(yǔ)句;}(2)從方法返回一般來(lái)說(shuō)有兩種情況會(huì)導(dǎo)致方法返回。當(dāng)碰到方法的結(jié)束大括號(hào)“}”時(shí)。當(dāng)執(zhí)行到return語(yǔ)句時(shí)。return語(yǔ)句的使用場(chǎng)景有兩種,一種用在void方法中(沒有返回值的方法),另一種用在有返回值的方法中。2.方法的參數(shù)類型在調(diào)用方法時(shí),可以為方法傳遞一個(gè)或多個(gè)值。傳給方法的值叫作實(shí)參(argument),在方法內(nèi)部,接收實(shí)參的變量叫作形參(parameter),形參在緊跟方法名的小括號(hào)中聲明。C#中的參數(shù)類型主要有值參數(shù)、引用參數(shù)和輸出參數(shù)。3.方法的重載類中兩個(gè)及以上的名稱相同的方法(包括隱藏的、繼承的方法),只要使用的參數(shù)類型或參數(shù)個(gè)數(shù)不同,編譯器就能知道在何種情況下應(yīng)該調(diào)用哪個(gè)方法,這就叫方法的重載。重載是面向?qū)ο缶幊陶Z(yǔ)言的一個(gè)重要特征。通過(guò)重載,可以使多個(gè)具有相同功能但參數(shù)不同的方法共享同一個(gè)方法名。4.靜態(tài)方法與非靜態(tài)方法類的成員類型有靜態(tài)和非靜態(tài)兩種,因此方法也有靜態(tài)方法和非靜態(tài)方法(也叫實(shí)例方法)兩種。使用static修飾符的方法被稱為靜態(tài)方法,沒有使用static修飾符的方法被稱為非靜態(tài)方法。靜態(tài)方法和非靜態(tài)方法的區(qū)別是,靜態(tài)方法為類所有,非靜態(tài)方法為該類定義的對(duì)象(實(shí)例)所有。5.運(yùn)算符的重載為類定義自己的運(yùn)算符的操作被稱為運(yùn)算符重載(OperatorOverloading)。6.遞歸遞歸是計(jì)算機(jī)科學(xué)和數(shù)學(xué)中的一個(gè)很重要的工具。遞歸較難理解,但在編程時(shí)使用遞歸有很好的效果。遞歸有時(shí)可以大大簡(jiǎn)化程序代碼,特別是對(duì)于某些問(wèn)題,使用常規(guī)方法編寫程序很困難,但遞歸卻能達(dá)到意想不到的效果。類的方法如果在方法體內(nèi)直接或間接地自己調(diào)用自己(方法的嵌套調(diào)用)就稱為遞歸方法。7.基于元組的“多”返回值數(shù)據(jù)臨時(shí)分組的最常用場(chǎng)景是方法的返回值。元組是一種可以存儲(chǔ)多個(gè)不同類型的值的輕級(jí)量數(shù)據(jù)結(jié)構(gòu)。五、屬性屬性是對(duì)現(xiàn)實(shí)世界中實(shí)體特征的抽象,它提供了一種對(duì)類或?qū)ο笮再|(zhì)的訪問(wèn)。屬性所描述的是狀態(tài)信息,在類的某個(gè)實(shí)例中,屬性的值表示該對(duì)象相應(yīng)的狀態(tài)值。C#中的屬性充分體現(xiàn)了對(duì)象的封裝性:不直接操作類的數(shù)據(jù)內(nèi)容,而是通過(guò)訪問(wèn)器進(jìn)行訪問(wèn)(訪問(wèn)器用于訪問(wèn)類的屬性或字段的函數(shù),可使用獲取訪問(wèn)器get方法和設(shè)置訪問(wèn)器set方法對(duì)屬性或字段的值進(jìn)行讀寫)。1.屬性的聲明由于屬性用于表達(dá)事物的狀態(tài),所以屬性的存取方式可以是讀,也可以是寫。讀、寫屬性分別用get方法和set方法表示。2.屬性的訪問(wèn)類的屬性成員的訪問(wèn)方法與類的變量成員的訪問(wèn)方法完全相同,如果屬性是靜態(tài)成員,則通過(guò)“類名.屬性成員名”訪問(wèn);如果屬性是非靜態(tài)成員,則通過(guò)“對(duì)象名.屬性成員名”訪問(wèn)。六、索引指示器C#提供了索引指示器(indexer),為對(duì)象編寫索引指示器后,可以像訪問(wèn)數(shù)組元素一樣訪問(wèn)對(duì)象。它的引入也是為了使編寫的程序更加直觀、簡(jiǎn)潔、易于理解,它以訪問(wèn)數(shù)組的方法來(lái)訪問(wèn)類的數(shù)據(jù)成員,而實(shí)際的讀/寫操作則是通過(guò)get訪問(wèn)器和set訪問(wèn)器來(lái)完成的。七、委托和事件委托,顧名思義,就是中間代理人的意思。通俗地說(shuō),委托是一個(gè)可以引用方法的對(duì)象,當(dāng)創(chuàng)建一個(gè)委托時(shí),也就創(chuàng)建了一個(gè)引用方法的對(duì)象,進(jìn)而可以調(diào)用該方法,即委托可以調(diào)用它所指向的方法。事件是建立在委托基礎(chǔ)上的另一個(gè)重要特性。從本質(zhì)上說(shuō),事件會(huì)在某件事發(fā)生時(shí),自動(dòng)執(zhí)行一些語(yǔ)句。事件是特殊化的委托,委托是事件的基礎(chǔ)。八、C#常用的基礎(chǔ)類1.Math類與Random類2.字符串九、命名空間在C#中,系統(tǒng)提供了命名空間來(lái)組織程序。命名空間既可以做程序的內(nèi)部組織系統(tǒng),又可以做程序的外部組織系統(tǒng)。當(dāng)作為外部組織系統(tǒng)時(shí),命名空間中的元素可以被其他程序使用。1.教學(xué)以學(xué)生
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二硫化碳生產(chǎn)工測(cè)試驗(yàn)證評(píng)優(yōu)考核試卷含答案
- 電力通信運(yùn)維員崗前規(guī)章制度考核試卷含答案
- 片基流延工誠(chéng)信道德能力考核試卷含答案
- 電子玻璃制品鍍膜工安全宣教測(cè)試考核試卷含答案
- 安全員考試請(qǐng)假條
- 2025年超細(xì)銀粉末、銀鈀粉、鈀粉、鉑粉項(xiàng)目合作計(jì)劃書
- 2026年智能心率帶項(xiàng)目營(yíng)銷方案
- 2025年江蘇省南通市中考物理真題卷含答案解析
- 2025年山東省日照市中考英語(yǔ)真題卷含答案解析
- 2025康復(fù)醫(yī)學(xué)與技術(shù)專業(yè)知識(shí)題庫(kù)及答案
- 招標(biāo)代理機(jī)構(gòu)入圍 投標(biāo)方案(技術(shù)方案)
- 運(yùn)輸車隊(duì)年終總結(jié)報(bào)告
- 房屋損壞糾紛鑒定報(bào)告
- 精益生產(chǎn)方式-LEAN-PRODUCTION
- 中學(xué)體育與健康課程與教學(xué)論P(yáng)PT高職完整全套教學(xué)課件
- 頸動(dòng)脈外膜剝脫術(shù)
- 養(yǎng)老設(shè)施建筑設(shè)計(jì)規(guī)范
- Starter-軟件簡(jiǎn)易使用手冊(cè)
- RFJ01-2008 人民防空工程防護(hù)設(shè)備選用圖集
- GB/T 27818-2011化學(xué)品皮膚吸收體外試驗(yàn)方法
- FZ/T 80004-2014服裝成品出廠檢驗(yàn)規(guī)則
評(píng)論
0/150
提交評(píng)論