第3章+C#面向?qū)ο缶幊?3(課件)-《算法與程序設(shè)計-C#》同步教學(xué)(清華大學(xué)版)_第1頁
第3章+C#面向?qū)ο缶幊?3(課件)-《算法與程序設(shè)計-C#》同步教學(xué)(清華大學(xué)版)_第2頁
第3章+C#面向?qū)ο缶幊?3(課件)-《算法與程序設(shè)計-C#》同步教學(xué)(清華大學(xué)版)_第3頁
第3章+C#面向?qū)ο缶幊?3(課件)-《算法與程序設(shè)計-C#》同步教學(xué)(清華大學(xué)版)_第4頁
第3章+C#面向?qū)ο缶幊?3(課件)-《算法與程序設(shè)計-C#》同步教學(xué)(清華大學(xué)版)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C#程序設(shè)計

第3章C#面向?qū)ο缶幊藽#程序設(shè)計

第3章C#面向?qū)ο缶幊?本節(jié)目標(biāo)理解面向?qū)ο蟮幕靖拍罾斫忸惡蛯ο蟮膮^(qū)別和聯(lián)系掌握方法的重載、不同的方法參數(shù)掌握構(gòu)造函數(shù)的聲明及使用了解靜態(tài)構(gòu)造函數(shù)的聲明和使用掌握類的繼承掌握this和base的用法4基本內(nèi)容構(gòu)造函數(shù)小結(jié)方法的重載類的繼承5為什么要重載

publicintSum(intpara1,intpara2){returnpara1+para2;}整形參數(shù),返回值整型如果想讓兩個string型、兩個double型相加,怎么做?編寫兩個不同名字的方法,這樣我們在進(jìn)行調(diào)用時要先判斷是什么類型,能否不判斷直接就能相加呢?6方法的重載同一個類中添加幾個名字相同,但參數(shù)類型或個數(shù)不同的方法

publicstring

Sum(stringpara1,stringpara2){returnpara1+para2;}

publicdouble

Sum(doublepara1,doublepara2){returnpara1+para2;}調(diào)用時只要傳遞參數(shù)即可,無需判斷類型演示示例:方法的重載72025/5/227方法的重載方法的重載依賴于方法簽名。簽名的定義如下:方法名+參數(shù)個數(shù)+參數(shù)類型+順序參數(shù)數(shù)目不同參數(shù)數(shù)目相同,類型不同。參數(shù)數(shù)目相同,類型相同,先后順序不一樣

相同返回值類型不能區(qū)別重載一個方法采用ref或out參數(shù),另一個不采用,可以重載8靜態(tài)方法和實例方法static修飾的方法稱為靜態(tài)方法,是一個類的全局方法靜態(tài)方法也叫作類方法,類名.方法名

沒有static修飾的方法叫實例方法,對象名.方法名注意事項:static方法中不能直接使用非靜態(tài)成員,因為非靜態(tài)成員與實例相關(guān)static方法中不能使用this(與實例相關(guān))非static方法中可以使用靜態(tài)成員91011基本內(nèi)容構(gòu)造函數(shù)小結(jié)方法的重載類的繼承12演示示例:構(gòu)造函數(shù)Employeezhang=newEmployee();zhang.Name=“張穎";zhang.Age=20;zhang.Salary=2000;一種特別的方法班級來了新學(xué)生添加學(xué)生對象學(xué)生類實例化對象、設(shè)置屬性初始屬性若太多,設(shè)置麻煩能否在實例化時設(shè)置屬性?publicEmployee(stringname,intage,doublesalary){this.Name=name;this.Age=age;this.Salary=salary;}Employeezhang=newEmpoyee(“張穎",20,2000);一次設(shè)置完成類中加入這個方法添加的方法叫做構(gòu)造函數(shù)13構(gòu)造函數(shù)是類中的一種特殊的方法構(gòu)造函數(shù)名與類名相同,不能聲明返回類型,也不能使用void可初始化成員變量classEmployee{publicEmployee(stringname,intage,doubleSalary){this.Name=name;this.Age=age;this.Salary=Salary;}}初始化成員變量this關(guān)鍵字引用類的當(dāng)前實例將參數(shù)的值,分別賦給當(dāng)前實例的屬性[修飾符]類名

([參數(shù)列表]){構(gòu)造函數(shù)方法體}14使用構(gòu)造函數(shù)new

關(guān)鍵字可以實例化一個新的對象指定對某個帶參數(shù)的構(gòu)造函數(shù)Employeezhang=newEmployee(“張穎",20,2000);每次創(chuàng)建類的實例都會調(diào)用此方法實例化對象調(diào)用構(gòu)造函數(shù)使用new關(guān)鍵字Employeescofield=newEmployee(“張穎",);Employeezhang=newEmployee(“張穎",20,2000);實例化一個對象實例化一個新對象不能顯式調(diào)用構(gòu)造函數(shù)15構(gòu)造函數(shù)的重載classEmployee{publicEmployee(stringname){=name;}publicEmployee(stringname,intage,doubleSalary):this(name){ this.Age=age;this.Salary=Salary;}}16靜態(tài)構(gòu)造函數(shù)靜態(tài)構(gòu)造函數(shù)用于實現(xiàn)初始化類(而不是初始化實例或?qū)ο螅┧璧牟僮饔糜诔跏蓟o態(tài)數(shù)據(jù),執(zhí)行僅需執(zhí)行一次的特定操作在創(chuàng)建第一個實例或引用任何靜態(tài)成員之前,將自動調(diào)用靜態(tài)構(gòu)造函數(shù)C#代碼不能調(diào)用靜態(tài)構(gòu)造函數(shù),總是在類加載時由.Net運行庫調(diào)用類的靜態(tài)構(gòu)造函數(shù)在給定程序中至多執(zhí)行一次一個類只能有一個靜態(tài)構(gòu)造函數(shù),無參實例構(gòu)造函數(shù)可以與其共存不需要加訪問修飾符,也不能帶任何參數(shù)只能訪問靜態(tài)成員1718析構(gòu)函數(shù)析構(gòu)函數(shù)(destructor)用于實現(xiàn)銷毀類的實例所需的操作,如釋放對象占用的非托管資源(例如:打開的文件、網(wǎng)絡(luò)連接等)析構(gòu)函數(shù)聲明的基本形式如下:

~類名(){析構(gòu)函數(shù)方法體}[;]19析構(gòu)函數(shù)析構(gòu)函數(shù)具有下列特征:析構(gòu)函數(shù)的名稱由類名前面加上“~”字符構(gòu)成析構(gòu)函數(shù)既沒有修飾符,沒有返回值類型(甚至也不能使用void),也沒有參數(shù)無法繼承或重載析構(gòu)函數(shù),一個類只能有一個析構(gòu)函數(shù)不能顯式調(diào)用析構(gòu)函數(shù)可以認(rèn)為析構(gòu)函數(shù)是構(gòu)造函數(shù)的相反操作析構(gòu)函數(shù)隱式地調(diào)用對象基類的Finalize(終結(jié))方法,即對繼承鏈遞歸調(diào)用

Finalize方法。故不應(yīng)使用空析構(gòu)函數(shù)20基本內(nèi)容構(gòu)造函數(shù)小結(jié)方法的重載類的繼承21繼承將公共的成員放到一個類中保留自己特有的成員保留自己特有的成員父類子類Manager類繼承Employee類Employee類派生Manager類子類又叫派生類父類又叫基類22派生類的聲明[屬性][類修飾符]class派生類名[:基類名]{類體}面向?qū)ο缶幊逃袃煞N類型的繼承:實現(xiàn)繼承:一個類派生于一個基類型,可以繼承基類的實現(xiàn)接口繼承:一個類型只繼承了函數(shù)的簽名,沒有繼承任何實現(xiàn)代碼在不同的類型有不同的實現(xiàn)時,定義通用的實現(xiàn)代碼是沒有意義,應(yīng)該采用接口繼承C#不支持多重實現(xiàn)繼承,支持派生于多個接口類可以派生于另一個類,可以派生任意多個接口結(jié)構(gòu)自動派生于System.ValueType,結(jié)構(gòu)不支持繼承,可以派生任意多個接口繼承父類非Private成員,但不包括構(gòu)造函數(shù)23classEmployee{privatestringname;publicintAge{get;set;}privatedoublesalary=2000;publicdoubleSalary{get{returnsalary;}set{salary=value;}}publicEmployee(stringname){=name;}…}classManager:Employee{privatedoublebonus;publicdoubleBonus {get{returnbonus;}set{bonus=value;}}}1、提取后的Manager類只有經(jīng)理特有的屬性2、創(chuàng)建一個經(jīng)理對象Managerzhang=newManager();zhang.Name="張靚";zhang.Age=21;公共屬性可以訪問繼承為了限制外界的訪問,可以將成員限定為Protected避免過度使用繼承24在派生類中調(diào)用基類構(gòu)造函數(shù)

執(zhí)行順序因為派生類要使用基類,所以基類實例化必須在派生類實例化之前進(jìn)行。默認(rèn)調(diào)用基類無參構(gòu)造函數(shù)調(diào)用特定的構(gòu)造函數(shù)如果想要調(diào)用基類的非默認(rèn)構(gòu)造函數(shù),那么必須使用base關(guān)鍵字。25訪問關(guān)鍵字th

溫馨提示

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

最新文檔

評論

0/150

提交評論