封裝和類的屬性ppt_第1頁
封裝和類的屬性ppt_第2頁
封裝和類的屬性ppt_第3頁
封裝和類的屬性ppt_第4頁
封裝和類的屬性ppt_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一章第一章 封裝和類的屬性封裝和類的屬性c c# # 高級語言編程高級語言編程創(chuàng)享教育創(chuàng)享教育 2014.12.18主講主講: : daivsing主要內(nèi)容主要內(nèi)容u 回顧與本課程地位回顧與本課程地位u 面向?qū)ο缶幊堂嫦驅(qū)ο缶幊蘋OPOOP演進演進u 面向?qū)ο笕筇卣髅嫦驅(qū)ο笕筇卣鞣庋b封裝繼承繼承多態(tài)多態(tài)u 字段的定義和使用字段的定義和使用u 屬性的定義和使用屬性的定義和使用u 方法的聲明和使用方法的聲明和使用構(gòu)造函數(shù)構(gòu)造函數(shù)析構(gòu)函數(shù)析構(gòu)函數(shù)垃圾搜集器垃圾搜集器回顧復(fù)習(xí)回顧復(fù)習(xí)u回顧回顧 控件控件 屬性屬性 + + 事件事件 數(shù)據(jù)庫與數(shù)據(jù)庫與c#c#編程的綜合應(yīng)用編程的綜合應(yīng)用 態(tài)度決定命

2、運:積極主動態(tài)度決定命運:積極主動 多練多練u本課程地位本課程地位演示效果演示效果u 面向過程面向過程方法不方便擴展方法不方便擴展代碼重用性低代碼重用性低不可維護不可維護程序規(guī)模小程序規(guī)模小u 面向?qū)ο竺嫦驅(qū)ο驩OPOOP的優(yōu)點的優(yōu)點容易編碼容易編碼代碼重用代碼重用易于分工協(xié)作易于分工協(xié)作效率高效率高 程序規(guī)模大程序規(guī)模大面向?qū)ο缶幊堂嫦驅(qū)ο缶幊蘋OPOOP演進演進軟件危機軟件危機解決辦法解決辦法面向過程面向過程程程序設(shè)計方法序設(shè)計方法面向?qū)ο竺嫦驅(qū)ο蟪坛绦蛟O(shè)計方法序設(shè)計方法面向過程面向過程 vs 面向?qū)ο竺嫦驅(qū)ο髐人類認知事物的基本方法人類認知事物的基本方法認識面向?qū)ο缶幊陶J識面向?qū)ο缶幊蘋

3、OPOOP事物之所以能被認識,其本身有一定的特點,比如:事物之所以能被認識,其本身有一定的特點,比如:顏色、形狀、大小、軟硬等顏色、形狀、大小、軟硬等狀態(tài)狀態(tài)稱為稱為屬性屬性功能、用途、動作等稱為功能、用途、動作等稱為行為行為事物的實例事物的實例對象對象抽象過程抽象過程形成概念形成概念類類對象的屬性與行為對象的屬性與行為這些對象有哪些屬性和行為?這些對象有哪些屬性和行為?屬性屬性型號型號價格價格里程里程行為行為起動起動停車停車行駛行駛屬性屬性車輪數(shù)量車輪數(shù)量品牌名稱品牌名稱行為行為加速加速換檔換檔剎車剎車屬性屬性名稱名稱顏色顏色品種品種行為行為搖尾巴搖尾巴吃東西吃東西系統(tǒng)中一系統(tǒng)中一切事物皆切

4、事物皆為對象為對象。類與對象類與對象u對象對象是屬性及其操作的封裝體是屬性及其操作的封裝體。u一組具有相同或相似性質(zhì)的對象的抽象就是一組具有相同或相似性質(zhì)的對象的抽象就是類類。 對象的抽象是類,類的具體化就是對象,或類的實例就是對象。u軟件系統(tǒng)處理的基本單元是類,類是具有相同屬性和方法軟件系統(tǒng)處理的基本單元是類,類是具有相同屬性和方法的對象集合。的對象集合。類圖:類圖:類與對象的關(guān)系類與對象的關(guān)系 類作為對象的抽象,類作為對象的抽象, 具有該類對象的共同屬性和行為。具有該類對象的共同屬性和行為。 類與對象的關(guān)系類與對象的關(guān)系是抽象與具體的關(guān)系,類是多個對象的是抽象與具體的關(guān)系,類是多個對象的抽

5、象,對象是類的個體實例。抽象,對象是類的個體實例。類的定義類的定義u類定義的語法結(jié)構(gòu)類定義的語法結(jié)構(gòu)訪問修飾符 class /類的成員主要有: /1) 成員變量成員變量 /2) 成員方法或成員函數(shù)成員方法或成員函數(shù)u類使用步驟1 定義類2 創(chuàng)建對象3 調(diào)用對象的成員變量和方法public class Student : Person / 成員變量成員變量 private string name; public string Name get return name; set name = value; private int age; / 成員方法或成員函數(shù)成員方法或成員函數(shù) public v

6、oid Say() MessageBox.Show(“我是我是”+name+ “,今年今年”+age+“歲。歲。); 訪問修飾符訪問修飾符Teacher 類(繼承于類(繼承于Person類)類)private 成員成員protected 成員成員public 成員成員internal 成員成員Student 類(繼承于類(繼承于Person類)類)只有只有 Student 類和類和 Teacher 類類都在同一程序集中,才可訪問都在同一程序集中,才可訪問internal成員成員不可訪問不可訪問不可訪問不可訪問可以訪問可以訪問u創(chuàng)建對象創(chuàng)建對象 Student student = new Stu

7、dent();u調(diào)用對象的成員變量和方法 student.StuName = “劉備”;/調(diào)用對象的成員變量student.Say();/調(diào)用對象的成員方法類的使用類的使用類名類名 對象名對象名 面向?qū)ο笕筇卣髅嫦驅(qū)ο笕筇卣?封裝封裝u 封裝封裝封裝:隱藏對象的屬性和實現(xiàn)細節(jié),僅對外提供訪問方式。封裝:隱藏對象的屬性和實現(xiàn)細節(jié),僅對外提供訪問方式。u 優(yōu)點優(yōu)點1 1、將變化隔離、將變化隔離 2 2、便于使用、便于使用 3 3、提高重用性、提高重用性 4 4、提高安全性、提高安全性u 封裝原則封裝原則1 1、將不需要對外提供的內(nèi)容都隱藏起來。、將不需要對外提供的內(nèi)容都隱藏起來。2 2、把屬性

8、都隱藏,提供公共方法對其訪問、把屬性都隱藏,提供公共方法對其訪問、public class Student : Person;/繼承繼承字段與屬性字段與屬性u 字段字段 字段是類內(nèi)部用來存儲數(shù)據(jù)的字段是類內(nèi)部用來存儲數(shù)據(jù)的。 字段是私有的字段是私有的privateprivate。 字段沒有限定范圍。字段沒有限定范圍。u 學(xué)員練習(xí)學(xué)員練習(xí)1 1 要求:在汽車類要求:在汽車類CarCar中創(chuàng)建字段,并在中創(chuàng)建字段,并在按鈕的單擊事件中按鈕的單擊事件中顯示各個字顯示各個字段的信息。段的信息。 步驟:步驟: 創(chuàng)建一個窗體類型的項目創(chuàng)建一個窗體類型的項目CarSystemCarSystem 創(chuàng)建汽車類創(chuàng)

9、建汽車類CarCar,該類包含的字段:車名、價格、廠家,該類包含的字段:車名、價格、廠家 寫一個按鈕的單擊事件,用寫一個按鈕的單擊事件,用MessageBox.ShowMessageBox.Show方法顯示這些字段信息方法顯示這些字段信息 創(chuàng)建一個窗體,輸入車名、價格、廠家,并存儲到創(chuàng)建一個窗體,輸入車名、價格、廠家,并存儲到CarCar對象的對應(yīng)字段中對象的對應(yīng)字段中 測試該類,嘗試價格為測試該類,嘗試價格為1010億元時會出錯嗎?這樣的價格符合生活常識嗎?億元時會出錯嗎?這樣的價格符合生活常識嗎?演示效果演示效果字段與屬性字段與屬性u 屬性屬性 屬性是提供給外部調(diào)用該類時用的屬性是提供給外

10、部調(diào)用該類時用的。屬性可以設(shè)置或讀取一個值,。屬性可以設(shè)置或讀取一個值,提供了一種更安全的數(shù)據(jù)訪問方式。提供了一種更安全的數(shù)據(jù)訪問方式。 屬性是公有的屬性是公有的publicpublic。 屬性的值有限定范圍,通過屬性的值有限定范圍,通過getget和和setset訪問器設(shè)定可讀、可寫和可讀訪問器設(shè)定可讀、可寫和可讀寫三種屬性。寫三種屬性。 getgetreturreturn n xxx; xxx; /表示可讀表示可讀 setsetxxx = value;xxx = value; / /表示可寫,指定安全規(guī)則表示可寫,指定安全規(guī)則演示效果演示效果屬性應(yīng)用屬性應(yīng)用u 為字段創(chuàng)建屬性的方法為字段創(chuàng)

11、建屬性的方法u 學(xué)員練習(xí)學(xué)員練習(xí)2 2 要求:在前面的汽車類要求:在前面的汽車類CarCar中為價格字段創(chuàng)建屬性,規(guī)則為價格大于中為價格字段創(chuàng)建屬性,規(guī)則為價格大于2 2萬且小于萬且小于5 5千萬。千萬。 步驟:步驟: 給給CarCar類的類的價格字段創(chuàng)建屬性,規(guī)則為價格大于價格字段創(chuàng)建屬性,規(guī)則為價格大于2 2萬且小于萬且小于5 5千萬千萬 測試該類,嘗試價格為測試該類,嘗試價格為1010億元時會出錯嗎?億元時會出錯嗎?方法的聲明和使用方法的聲明和使用u方法的語法結(jié)構(gòu)方法的語法結(jié)構(gòu)u返回類型返回類型 如果不返回任何值,返回類型為如果不返回任何值,返回類型為voidvoid,否則為合法的數(shù)據(jù)類

12、型,如,否則為合法的數(shù)據(jù)類型,如intint、stringstring、數(shù)組、數(shù)組、classclass等等, ,此時必須有此時必須有returnreturn來返回值。來返回值。u參數(shù)列表參數(shù)列表 如果需要參數(shù)就指定,有無參數(shù)都必須寫出()。如果需要參數(shù)就指定,有無參數(shù)都必須寫出()。u方法名一般為動賓結(jié)構(gòu),如方法名一般為動賓結(jié)構(gòu),如:GetUser:GetUser、SearchUserSearchUser訪問修飾符訪問修飾符 返回類型返回類型 (參數(shù)列表參數(shù)列表) / 方法主體方法主體public void Say(string msg) MessageBox.Show(msg, “信息信息

13、”);方法的聲明和使用方法的聲明和使用u方法調(diào)用方法調(diào)用 類內(nèi)部直接用方法名調(diào)用類內(nèi)部直接用方法名調(diào)用 類外部調(diào)用方法類外部調(diào)用方法 先聲明類的對象名,再通過該對象名先聲明類的對象名,再通過該對象名. .方法名調(diào)用。如:方法名調(diào)用。如:Car car = new Car();Car car = new Car();car.ShowCarInfor();car.ShowCarInfor();u學(xué)員練習(xí)學(xué)員練習(xí)3 3 要求:在前面的汽車類要求:在前面的汽車類CarCar中中, ,并用方法并用方法ShowCarInfoShowCarInfo顯示各個字段的顯示各個字段的信息。信息。 步驟:步驟: 在類

14、在類CarCar中中寫一個方法寫一個方法ShowCarInfo,ShowCarInfo,并在該方法中并在該方法中MessageBox.ShowMessageBox.Show顯示各個字段的顯示各個字段的信息,不需要返回值。信息,不需要返回值。 添加一個按鈕,在其單擊事件中調(diào)用添加一個按鈕,在其單擊事件中調(diào)用ShowCarInfo ShowCarInfo 顯示信息顯示信息, 測試該方法是否正確測試該方法是否正確 補充補充 另建一個方法另建一個方法ShowCarInfo2ShowCarInfo2,返回要顯示的各字段信息。(,返回要顯示的各字段信息。(做完的完成做完的完成)演示效果演示效果構(gòu)造函數(shù)構(gòu)造

15、函數(shù)u 構(gòu)造函數(shù)構(gòu)造函數(shù) 構(gòu)造函數(shù)是特殊的成員函數(shù),主要用于為對象分配空間,完成初始化工作。 構(gòu)造函數(shù)的名稱必須與類名相同;構(gòu)造函數(shù)可以帶參數(shù),但沒有返回值。 構(gòu)造函數(shù)在對象定義時被自動調(diào)用。 若沒有為類定義構(gòu)造函數(shù),則系統(tǒng)會生成默認的構(gòu)造函數(shù)。public StudentStudent() /初始代碼u 學(xué)員練習(xí)學(xué)員練習(xí)4 4 要求:為汽車類要求:為汽車類CarCar創(chuàng)建一個構(gòu)造函數(shù)創(chuàng)建一個構(gòu)造函數(shù), ,并用窗體文本框中的值初始并用窗體文本框中的值初始化各個字段。化各個字段。 步驟:步驟: 為汽車類為汽車類CarCar創(chuàng)建一個構(gòu)造函數(shù)創(chuàng)建一個構(gòu)造函數(shù), ,并用窗體文本框中的值初始化各個字段。

16、并用窗體文本框中的值初始化各個字段。 添加一個按鈕,在其單擊事件中創(chuàng)建添加一個按鈕,在其單擊事件中創(chuàng)建CarCar對象,并初始化對象,并初始化各個字段,再各個字段,再調(diào)用調(diào)用ShowCarInfo ShowCarInfo 顯示信息。顯示信息。 測試初始化數(shù)據(jù)是否正確測試初始化數(shù)據(jù)是否正確演示效果演示效果析構(gòu)函數(shù)析構(gòu)函數(shù)u 析構(gòu)函數(shù)析構(gòu)函數(shù) 執(zhí)行清除操作的特殊方法。執(zhí)行清除操作的特殊方法。public StudentStudent() /清除操作清除操作代碼代碼垃圾搜集器垃圾搜集器u 垃圾搜集器垃圾搜集器 GCGC是垃圾搜集器。程序員不用擔(dān)心內(nèi)存管理,垃圾收集器會自動進是垃圾搜集器。程序員不用擔(dān)心內(nèi)存管理,垃圾收集器會自動進行管理。行管理。 GC.Collect()GC.Collect()強制對所有代碼進行及時垃圾回收。強制對所有代碼進行及時垃圾回收。靜態(tài)類靜態(tài)類靜態(tài)類是不能實例化的類,靜態(tài)類的變量不能用 new 關(guān)鍵字創(chuàng)建。靜態(tài)類不能被繼承。靜態(tài)類不能有實例構(gòu)造

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論