




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C#程序設(shè)計(jì)基礎(chǔ)目錄第一章 .NET與C# 第二章 第一個(gè)C#程序第三章 變量與表達(dá)式第四章 流程控制語(yǔ)句第五章 數(shù)組與集合第六章 面向?qū)ο缶幊袒A(chǔ)第七章 高級(jí)面向?qū)ο蠹夹g(shù)第八章 C#高級(jí)技術(shù)第九章 文件第十章 Windows編程基礎(chǔ)2第六章 面向?qū)ο缶幊袒A(chǔ)6.1 面向?qū)ο蟾攀?.2 類的定義6.3 訪問(wèn)修飾符6.4 構(gòu)造函數(shù)與析構(gòu)函數(shù)6.5 字段、屬性與索引器6.6 方法6.7 重載6.8 靜態(tài)成員6.9 分部類6.10 命名空間6.11 自定義類庫(kù)36.1 面向?qū)ο蟾攀?.1.1 對(duì)象6.1.2 面向?qū)ο蟪绦蛟O(shè)計(jì)6.1.3 面向?qū)ο蟪绦蛟O(shè)計(jì)三大特性4“對(duì)象”是面向?qū)ο蟪绦虻闹饕M成部分
2、在面向?qū)ο蟪绦蛟O(shè)計(jì)中,把一個(gè)具有完整功能的程序看做是一個(gè)需要實(shí)現(xiàn)的最大的“對(duì)象”,而這個(gè)最大的對(duì)象又由不同的對(duì)象通過(guò)一定方式組合而成,不同的對(duì)象分別實(shí)現(xiàn)程序中不同的子功能,當(dāng)這些具有不同子功能的對(duì)象經(jīng)過(guò)一定的方式組合在一起并協(xié)調(diào)工作時(shí)就形成了一個(gè)功能完善的應(yīng)用程序。對(duì)象的概念 世界中的任何一個(gè)物理實(shí)體看做一個(gè)對(duì)象,而這個(gè)對(duì)象一定是由很多不同的子對(duì)象構(gòu)成。56.1.1 6.1.1 對(duì)象對(duì)象結(jié)構(gòu)化程序設(shè)計(jì) 又稱為面向過(guò)程的程序設(shè)計(jì) 程序=數(shù)據(jù)結(jié)構(gòu)+算法面向?qū)ο蟪绦蛟O(shè)計(jì) 采用數(shù)據(jù)抽象和信息隱藏技術(shù) 抽象成一種新的數(shù)據(jù)類型“類” 面向?qū)ο蟪绦?對(duì)象+對(duì)象+對(duì)象 對(duì)象=算法+數(shù)據(jù)結(jié)構(gòu)66.1.2 6.1
3、.2 面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)封裝 把數(shù)據(jù)和方法封裝為一個(gè)獨(dú)立的整體 公開對(duì)象外部特性,隱藏對(duì)象內(nèi)部特性 封裝的目的在于把對(duì)象的設(shè)計(jì)者和對(duì)象者的使用分開,使用者不必了解對(duì)象的內(nèi)部實(shí)現(xiàn)細(xì)節(jié),只須調(diào)用設(shè)計(jì)者提供的公開接口來(lái)訪問(wèn)和使用該對(duì)象繼承 派生類自動(dòng)共享基類中數(shù)據(jù)和方法 繼承提高了代碼可重用性 促進(jìn)系統(tǒng)的可擴(kuò)充性76.1.3 6.1.3 面向?qū)ο蟪绦蛟O(shè)計(jì)三大特性面向?qū)ο蟪绦蛟O(shè)計(jì)三大特性多態(tài) 多態(tài)是指同一方法作用于不同的對(duì)象可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果,它是對(duì)類的功能和行為的再抽象。其包括兩部分內(nèi)容:重載和重寫 重載 類內(nèi)部多態(tài)性的體現(xiàn) 描述類內(nèi)部自身特定成員方法之間的關(guān)系 類中
4、具有相似功能的不同方法用同一個(gè)方法名稱來(lái)實(shí)現(xiàn) 重寫 基類與派生類間多態(tài)性的體現(xiàn) 派生類中重新定義新的方法覆蓋基類中的方法86.1.3 6.1.3 面向?qū)ο蟪绦蛟O(shè)計(jì)三大特性面向?qū)ο蟪绦蛟O(shè)計(jì)三大特性6.2 類的定義9什么是類 類是對(duì)現(xiàn)實(shí)世界中具有相似功能的同類實(shí)體的抽象 類是一種自定義的數(shù)據(jù)類型 用“new”關(guān)鍵字從某個(gè)類實(shí)例化對(duì)象106.2 6.2 類的定義類的定義基本語(yǔ)法訪問(wèn)修飾符 class 類名 /類成員 其中: 訪問(wèn)修飾符:可選,表示該類的可訪問(wèn)性范圍。 class:定義類的關(guān)鍵字 類名:類的名稱,一般用Pascal命名法來(lái)定義類的名稱。【例6-1】類的定義示例116.2 6.2 類的定
5、義類的定義6.3 訪問(wèn)修飾符6.3.1 概述6.3.2 可訪問(wèn)性級(jí)別12訪問(wèn)修飾符是一些關(guān)鍵字,用于指定聲明的成員或類型的可訪問(wèn)性成員指的是類定義中的字段、屬性、方法、構(gòu)造函數(shù)、析構(gòu)函數(shù)等所有的類成員四個(gè)訪問(wèn)修飾符,五個(gè)可訪問(wèn)性級(jí)別 public protected internal protected internal private136.3.1 6.3.1 概述概述6.3.2 6.3.2 可訪問(wèn)性級(jí)別可訪問(wèn)性級(jí)別可訪問(wèn)性級(jí)別可訪問(wèn)性級(jí)別含義含義public訪問(wèn)不受限制,同一程序集中的任何其他代碼或引用該程序集的其他程序集都可以訪問(wèn)該類型或成員protected只有同一類、結(jié)構(gòu)體或者派生類
6、中的代碼可以訪問(wèn)該類型或成員internal同一程序集中的任何代碼都可以訪問(wèn)該類型或成員,但其他程序集中的代碼不可以Protected internal同一程序集中的任何代碼或其他程序集中的任何派生類都可以訪問(wèn)該類型或成員private只有同一類或結(jié)構(gòu)體中的代碼可以訪問(wèn)該類型或成員表6-1 可訪問(wèn)性級(jí)別146.3.2 6.3.2 可訪問(wèn)性級(jí)別可訪問(wèn)性級(jí)別( (續(xù)續(xù)) )15頂級(jí)類型的訪問(wèn)修飾符只能是internal或public頂級(jí)類型的默認(rèn)訪問(wèn)修飾符是internal嵌套類型默認(rèn)訪問(wèn)修飾符和允許的訪問(wèn)修飾符各不相同6.3.2 6.3.2 可訪問(wèn)性級(jí)別可訪問(wèn)性級(jí)別( (續(xù)續(xù)) )16嵌套類型嵌
7、套類型內(nèi)部成員默認(rèn)訪問(wèn)修飾符內(nèi)部成員默認(rèn)訪問(wèn)修飾符內(nèi)部成員允許的訪問(wèn)修飾符內(nèi)部成員允許的訪問(wèn)修飾符enumpublic無(wú)structprivatepublicinternalprivateclassprivatepublicprotectedinternalprotected internal privateinterfacepublic無(wú)表6-2嵌套類型成員訪問(wèn)修飾符6.4 構(gòu)造函數(shù)和析構(gòu)函數(shù)6.4.1 構(gòu)造函數(shù)6.4.2 析構(gòu)函數(shù)176.4.1 6.4.1 構(gòu)造函數(shù)構(gòu)造函數(shù)18構(gòu)造函數(shù)定義構(gòu)造函數(shù)是一種特殊的方法,一般用于實(shí)例化對(duì)象時(shí)對(duì)數(shù)據(jù)成員進(jìn)行初始化語(yǔ)法結(jié)構(gòu)訪問(wèn)修飾符 構(gòu)造函數(shù)名 (
8、參數(shù)列表 ) /語(yǔ)句塊 其中: 訪問(wèn)修飾符:可選,默認(rèn)為private,一般都用public 構(gòu)造函數(shù)名:名稱必須與類名完全相同,且無(wú)返回值也不能加“void”關(guān)鍵字 參數(shù)列表:可選,在構(gòu)造函數(shù)中可以有參數(shù),也可以沒(méi)有參數(shù)6.4.1 6.4.1 構(gòu)造函數(shù)構(gòu)造函數(shù)( (續(xù)續(xù)) )19類中可以沒(méi)有構(gòu)造函數(shù),也可以由用戶自定義構(gòu)造函數(shù)。當(dāng)類中沒(méi)有顯式定義構(gòu)造函數(shù)時(shí),系統(tǒng)將自動(dòng)創(chuàng)建一個(gè)不帶參數(shù)列表的默認(rèn)的構(gòu)造函數(shù),并根據(jù)對(duì)象中數(shù)據(jù)成員的類型用相應(yīng)默認(rèn)值對(duì)其初始化。當(dāng)在類中顯式定義了構(gòu)造函數(shù)后,默認(rèn)的構(gòu)造函數(shù)將不再存在。構(gòu)造函數(shù)的調(diào)用在實(shí)例化對(duì)象時(shí),構(gòu)造函數(shù)將通過(guò)new語(yǔ)句被自動(dòng)調(diào)用調(diào)用構(gòu)造函數(shù)時(shí)所使用
9、的參數(shù)類型和個(gè)數(shù)必須與定義構(gòu)造函數(shù)時(shí)的參數(shù)類型和個(gè)數(shù)相一致例6-2不帶參數(shù)構(gòu)造函數(shù)示例例6-3帶參數(shù)構(gòu)造函數(shù)示例6.4.1 6.4.1 構(gòu)造函數(shù)構(gòu)造函數(shù)( (續(xù)續(xù)) )206.4.2 6.4.2 析構(gòu)函數(shù)析構(gòu)函數(shù)21析構(gòu)函數(shù)定義析構(gòu)函數(shù)也是一種特殊的方法,一般主要用于在銷毀對(duì)象時(shí)釋放該對(duì)象所占用的非托管資源由系統(tǒng)自動(dòng)調(diào)用語(yǔ)法結(jié)構(gòu)析構(gòu)函數(shù)名 ( ) /語(yǔ)句塊 其中: 析構(gòu)函數(shù)名:析構(gòu)函數(shù)名稱必須與類名完全相同,同時(shí)在其前面加“”號(hào)。析構(gòu)函數(shù)無(wú)返回值,無(wú)參數(shù)列表,無(wú)訪問(wèn)修飾符。6.4.2 6.4.2 析構(gòu)函數(shù)析構(gòu)函數(shù)( (續(xù)續(xù)) )22析構(gòu)函數(shù)的使用析構(gòu)函數(shù)在程序中不能顯式調(diào)用,它是由系統(tǒng)在對(duì)象銷
10、毀時(shí)自動(dòng)調(diào)用的。析構(gòu)函數(shù)的不足 析構(gòu)函數(shù)會(huì)延遲對(duì)象最終從內(nèi)存中刪除的時(shí)間 無(wú)法控制和確定析構(gòu)函數(shù)被調(diào)用的時(shí)間 可以通過(guò)System.Disposable 接口來(lái)替代析構(gòu)函數(shù)釋放資源【例6-4】析構(gòu)函數(shù)示例6.5 字段、屬性與索引器6.5.1 字段6.5.2 屬性6.5.3 索引器23字段定義類中的字段可以是任何類型的變量,包括簡(jiǎn)單類型和引用類型,可以用標(biāo)準(zhǔn)的變量聲明格式和訪問(wèn)修飾符來(lái)定義。語(yǔ)法結(jié)構(gòu) 訪問(wèn)修飾符 其它修飾符 數(shù)據(jù)類型 變量名列表; 其中: 訪問(wèn)修飾符:可選,默認(rèn)為private。類中的字段屬于嵌套類型的內(nèi)部成員,因此其可用的訪問(wèn)修飾符如6.3節(jié)中表6-2所示 其它修飾符:可選,常
11、用的有:const、static、readonly等。 數(shù)據(jù)類型:變量的類型,可以是簡(jiǎn)單類型或引用類型。 變量名列表:變量的名稱,一次可以定義一個(gè)或多個(gè)變量。6.5.1 6.5.1 字段字段24實(shí)例字段在類的字段定義中,不加“static”關(guān)鍵字修飾的字段稱為實(shí)例字段實(shí)例字段特定于類的實(shí)例,從同一個(gè)類創(chuàng)建的若干個(gè)實(shí)例對(duì)象各自擁有自己的實(shí)例字段對(duì)某個(gè)實(shí)例對(duì)象中的實(shí)例字段修改時(shí),不影響其它實(shí)例對(duì)象中的實(shí)例字段。【例6-5】實(shí)例字段示例6.5.1 6.5.1 字段字段( (續(xù)續(xù)) )25靜態(tài)字段在類的字段定義中,加“static”關(guān)鍵字修飾的字段稱為靜態(tài)字段,也稱為類字段靜態(tài)字段屬于類本身,在該類的
12、所有實(shí)例中共享通過(guò)“類名.靜態(tài)字段名”來(lái)訪問(wèn)該靜態(tài)字段對(duì)某個(gè)實(shí)例對(duì)象中靜態(tài)字段值進(jìn)行修改時(shí),將同時(shí)影響其它實(shí)例對(duì)象中的靜態(tài)字段值【例6-6】靜態(tài)字段示例6.5.1 6.5.1 字段字段( (續(xù)續(xù)) )26常量字段在類的定義中,加“const”關(guān)鍵字修飾的字段稱為常量字段常量字段的值在編譯時(shí)已知,并在生存期內(nèi)不能更改只讀字段在類的定義中,加“readonly”關(guān)鍵字修飾的字段稱為只讀字段。對(duì)只讀字段的初始化可以在聲明時(shí)進(jìn)行,也可以在類的構(gòu)造函數(shù)中進(jìn)行,其它情況下只讀字段只能讀不能寫。6.5.1 6.5.1 字段字段( (續(xù)續(xù)) )27類的常量字段與只讀字段的區(qū)別常量字段只能在聲明時(shí)初始化只讀字段
13、可以在聲明或構(gòu)造函數(shù)中初始化不同實(shí)例對(duì)象中的只讀字段可能具有不同的值不同實(shí)例對(duì)象中的常量字段具有相同的值對(duì)常量字段的訪問(wèn)通過(guò)“類名.常量字段名”,不能通過(guò)對(duì)象來(lái)訪問(wèn)對(duì)只讀字段的訪問(wèn)通過(guò)“對(duì)象名.只讀字段名”,不能通過(guò)類名來(lái)訪問(wèn)【例6-7】常量字段與只讀字段示例6.5.1 6.5.1 字段字段( (續(xù)續(xù)) )28屬性通過(guò)屬性實(shí)現(xiàn)對(duì)私有字段的存取,實(shí)現(xiàn)了數(shù)據(jù)的隱藏語(yǔ)法結(jié)構(gòu)訪問(wèn)修飾符其它修飾符 數(shù)據(jù)類型 屬性名get/讀訪問(wèn)器 set/寫訪問(wèn)器 6.5.2 6.5.2 屬性屬性29 其中 訪問(wèn)修飾符:默認(rèn)為private。屬性的訪問(wèn)修飾符一般為public 其它修飾符:可選,例如static等 數(shù)據(jù)
14、類型:可以為簡(jiǎn)單類型,也可以為引用類型,表示get屬性訪問(wèn)器的返回值類型 get:get訪問(wèn)器,也稱為讀訪問(wèn)器,用于返回屬性值,其返回值類型和屬性的類型相同 set:set訪問(wèn)器,也稱為寫訪問(wèn)器,用于為屬性分配新值。set訪問(wèn)器沒(méi)有返回值,但它有一個(gè)隱式的名為value的參數(shù),其類型與屬性類型相同 屬性名:屬性的名稱,外部代碼可以通過(guò)屬性名來(lái)調(diào)用get訪問(wèn)器和set訪問(wèn)器。屬性只有g(shù)et訪問(wèn)器時(shí)稱為只讀屬性,只有set訪問(wèn)器時(shí)稱為只寫屬性,當(dāng)兩個(gè)都有稱為讀寫訪問(wèn)器【例6-8】屬性示例6.5.2 6.5.2 屬性屬性( (續(xù)續(xù)) )30自動(dòng)實(shí)現(xiàn)的屬性屬性的get和set訪問(wèn)器不需要實(shí)現(xiàn)其他代碼邏
15、輯同時(shí)有g(shù)et和set兩個(gè)訪問(wèn)器,且訪問(wèn)器無(wú)任何代碼系統(tǒng)自動(dòng)創(chuàng)建私有的匿名支持字段來(lái)保存屬性值語(yǔ)法結(jié)構(gòu)訪問(wèn)修飾符 數(shù)據(jù)類型 屬性名get;/讀訪問(wèn)器 set;/寫訪問(wèn)器【例6-9】自動(dòng)屬性示例6.5.2 6.5.2 屬性屬性( (續(xù)續(xù)) )31索引器作用允許對(duì)類中的字段像數(shù)組一樣進(jìn)行索引通過(guò)索引方式方便訪問(wèn)類中集合或數(shù)組字段語(yǔ)法結(jié)構(gòu)訪問(wèn)修飾符 返回值類型 this 數(shù)據(jù)類型 索引參數(shù)名 get set其中6.5.3 6.5.3 索引器索引器32其中 訪問(wèn)修飾符:可選,默認(rèn)為private,一般為public。 this:索引器名稱,用this關(guān)鍵字指定。 數(shù)據(jù)類型:索引的數(shù)據(jù)類型,一般為整型,
16、但也可以為string等其他類型 索引參數(shù)名:索引參數(shù)的名稱。 get:get訪問(wèn)器,類似于屬性中的get訪問(wèn)器,但帶有index參數(shù) set:set訪問(wèn)器,類似于屬性中的set訪問(wèn)器,但帶有index參數(shù)注意 索引器可以有多個(gè)索引參數(shù),如對(duì)類中的二維數(shù)組定義索引器時(shí)就需要兩個(gè)索引參數(shù) 一個(gè)類中可定義多個(gè)索引器實(shí)現(xiàn)對(duì)類中多個(gè)字段進(jìn)行索引【例6-10】索引器示例6.5.3 6.5.3 索引器索引器( (續(xù)續(xù)) )336.6 方法6.6.1 方法聲明6.6.2 方法參數(shù)346.6.1 6.6.1 方法聲明方法聲明35什么是方法“方法”是包含一系列語(yǔ)句的代碼塊每條語(yǔ)句代碼都是在方法的上下文中執(zhí)行的語(yǔ)
17、法結(jié)構(gòu)訪問(wèn)修飾符其他修飾符 數(shù)據(jù)類型 方法名(參數(shù)列表)/方法體其中修飾符修飾符含義含義public該方法可以任何地方不受限制的被訪問(wèn)。protected該方法可以在類內(nèi)部或派生類的代碼中訪問(wèn)internal該方法可以在同一程序集中被訪問(wèn)Protected internal該方法可以在同一程序集或其他程序集的派生類中被訪問(wèn)private該方法只能在類內(nèi)部被訪問(wèn)static該方法是靜態(tài)方法abstract該方法是一個(gè)抽象方法。virtual該方法是虛方法,可以在派生類中重寫extern該方法是一個(gè)外部方法override該方法是對(duì)基類中所繼承的virtual方法的新實(shí)現(xiàn)new該方法隱藏基類中的同
18、名方法sealed該方法是密封方法,不能在子類中重寫該方法6.6.1 6.6.1 方法聲明方法聲明( (續(xù)續(xù)) )36其中 訪問(wèn)修飾符:可選,默認(rèn)為private 其他修飾符:可選,如static、virtual、override等 數(shù)據(jù)類型:方法的返回值類型,可以是簡(jiǎn)單類型、引用類型或“void”類型 方法名:按標(biāo)識(shí)符的命名規(guī)則設(shè)置的方法名稱,同時(shí)方法名不能和C#中的關(guān)鍵字同名 參數(shù)列表:可選,由零個(gè)或多個(gè)用逗號(hào)分割的參數(shù)組成,參數(shù)類型可以是簡(jiǎn)單類型也可以是引用類型 方法體:用括起來(lái)的語(yǔ)句塊。【例6-11】方法示例6.6.2 6.6.2 方法參數(shù)方法參數(shù)37值類型形參不加任何修飾符的形參就是
19、值類型形參方法調(diào)用時(shí),系統(tǒng)為值類型形參單獨(dú)創(chuàng)建存儲(chǔ)空間,并把實(shí)參的值復(fù)制給形參方法內(nèi)發(fā)生的對(duì)形參的更改對(duì)實(shí)參中存儲(chǔ)的原始數(shù)據(jù)無(wú)任何影響【例6-12】簡(jiǎn)單類型的值類型形參示例【例6-13】引用類型的值類型形參示例6.6.2 6.6.2 方法參數(shù)方法參數(shù)( (續(xù)續(xù)) )38ref類型形參加修飾符ref的形參就是ref類型形參ref類型參數(shù)要求在使用前必須進(jìn)行初始化ref類型的形參在方法調(diào)用時(shí)并不創(chuàng)建新的存儲(chǔ)單元,而是與實(shí)參共用一個(gè)存儲(chǔ)單元方法內(nèi)對(duì)形參的更改實(shí)際上就是對(duì)實(shí)參的更改【例6-14】ref類型參數(shù)示例“ref類型”與“引用類型”的區(qū)別值類型和引用類型參數(shù)都可用 ref 進(jìn)行修飾【例6-15
20、】ref引用類型參數(shù)示例6.6.2 6.6.2 方法參數(shù)方法參數(shù)( (續(xù)續(xù)) )39out類型形參加修飾符out的形參就是out類型形參當(dāng)希望方法同時(shí)返回多個(gè)值時(shí),可以通過(guò)為方法聲明多個(gè)out類型形參來(lái)實(shí)現(xiàn)out類型參數(shù)在使用前無(wú)需進(jìn)行初始化,但在方法中必須對(duì)out類型的參數(shù)進(jìn)行賦值【例6-16】out類型參數(shù)示例6.6.2 6.6.2 方法參數(shù)方法參數(shù)( (續(xù)續(xù)) )40params類型形參加修飾符params的形參就是params類型形參params類型參數(shù)可以給方法傳遞0個(gè)或任意多個(gè)參數(shù)params類型形參必須是方法中最后一個(gè)形參,并且一個(gè)方法中只允許一個(gè)params類型的形參【例6-1
21、7】params類型參數(shù)示例6.6.2 6.6.2 方法參數(shù)方法參數(shù)( (續(xù)續(xù)) )41命名參數(shù)命名參數(shù)可將實(shí)參與形參的名稱關(guān)聯(lián),從而在方法調(diào)用時(shí)可以按任意順序把實(shí)參傳遞給形參命名參數(shù)可以用在方法中也可以用在索引器、構(gòu)造函數(shù)和委托中 【例6-18】命名參數(shù)示例6.6.2 6.6.2 方法參數(shù)方法參數(shù)( (續(xù)續(xù)) )42可選參數(shù)為形參指定默認(rèn)值的參數(shù)就是可選參數(shù)方法聲明中每個(gè)可選參數(shù)都必須指定默認(rèn)值 可選參數(shù)的默認(rèn)值必須是一個(gè)常數(shù)表達(dá)式方法定義中跟在可選參數(shù)后的每個(gè)參數(shù)也都必須是可選的,即可選參數(shù)必須放在參數(shù)列表的后面方法調(diào)用時(shí),為可選形參中任意一個(gè)提供了實(shí)參,則它必須為前面的所有可選形參提供實(shí)
22、參【例6-19】可選參數(shù)示例6.7 重載6.7.1 簽名6.7.2 方法重載6.7.3 構(gòu)造函數(shù)重載6.7.4 索引器重載6.7.5 運(yùn)算符重載436.7.1 6.7.1 簽名簽名44簽名簽名是對(duì)類、結(jié)構(gòu)和接口中的成員實(shí)施重載的一個(gè)重要機(jī)制方法的簽名由方法名稱、形參的類型和種類(值類型參數(shù)、ref類型參數(shù)、out類型參數(shù)或params類型參數(shù))組成,但不包含返回值類型索引器的簽名由它的每一個(gè)形參的類型組成,但不包含元素類型運(yùn)算符的簽名由運(yùn)算符的名稱和它的每一個(gè)形參的類型組成,但不包含結(jié)果類型6.7.2 6.7.2 方法重載方法重載45方法重載定義類或結(jié)構(gòu)體中聲明多個(gè)名稱相同但簽名不同的方法兩個(gè)
23、方法的名稱、參數(shù)類型和參數(shù)個(gè)數(shù)都相同但返回值類型或訪問(wèn)修飾符不同,不能構(gòu)成方法的重載兩個(gè)方法名稱相同,參數(shù)類型和個(gè)數(shù)都相同,僅ref修飾符和out修飾符的順序不同,也不能構(gòu)成方法的重載【例6-20】類的方法重載示例【例6-21】結(jié)構(gòu)體的方法重載示例6.7.3 6.7.3 構(gòu)造函數(shù)重載構(gòu)造函數(shù)重載46構(gòu)造函數(shù)重載定義類或結(jié)構(gòu)體中聲明多個(gè)名稱相同但簽名不同的構(gòu)造函數(shù)兩個(gè)構(gòu)造函數(shù)的參數(shù)類型和參數(shù)個(gè)數(shù)都相同但訪問(wèn)修飾符不同,不能構(gòu)成構(gòu)造函數(shù)的重載兩個(gè)構(gòu)造函數(shù)的參數(shù)類型和個(gè)數(shù)都相同,僅ref修飾符和out修飾符的順序不同,不能構(gòu)成構(gòu)造函數(shù)的重載【例6-22】類的構(gòu)造函數(shù)重載示例【例6-23】結(jié)構(gòu)體的構(gòu)造
24、函數(shù)重載示例6.7.4 6.7.4 索引器重載索引器重載47索引器重載定義類或結(jié)構(gòu)體中聲明多個(gè)名稱相同但簽名不同的索引器索引器的參數(shù)類型和參數(shù)個(gè)數(shù)都相同但返回值類型不同,不能構(gòu)成索引器的重載索引器的訪問(wèn)修飾符不同,不能構(gòu)成索引器的重載【例6-24】類的索引器重載示例6.7.5 6.7.5 運(yùn)算符重載運(yùn)算符重載48運(yùn)算符重載定義對(duì)現(xiàn)有運(yùn)算符的功能進(jìn)行重載,賦予其新的運(yùn)算邏輯和功能,使之可以對(duì)新的數(shù)據(jù)類型進(jìn)行運(yùn)算對(duì)用戶自定義數(shù)據(jù)類型(包括類和結(jié)構(gòu)體)的運(yùn)算就像對(duì)基本數(shù)據(jù)類型的運(yùn)算一樣自然、簡(jiǎn)單語(yǔ)法結(jié)構(gòu) public static 返回值類型 operator 運(yùn)算符(參數(shù)列表) /程序代碼 6.7
25、.5 6.7.5 運(yùn)算符重載運(yùn)算符重載( (續(xù)續(xù)) )49 其中 public:訪問(wèn)修飾符,運(yùn)算符重載必須申明為public。 static:運(yùn)算符重載必須申明為static。 返回值類型:表示運(yùn)算符重載方法的返回值類型。 operator:關(guān)鍵字,表示運(yùn)算符重載。 運(yùn)算符:要重載的運(yùn)算符,詳見表6-4。 參數(shù)列表:要進(jìn)行運(yùn)算的參數(shù),若運(yùn)算符是一元運(yùn)算則只有一個(gè)參數(shù),若是二元運(yùn)算則是兩個(gè)參數(shù)。6.7.5 6.7.5 運(yùn)算符重載運(yùn)算符重載( (續(xù)續(xù)) )表6-4 可重載的運(yùn)算符50類別類別運(yùn)算符運(yùn)算符一元運(yùn)算符+、 -、 !、 、 +、 -、 true 和 false二元運(yùn)算符+、 -、 *、
26、/、 %、 &、 |、 、 、= =、 !=、 、=、【例6-25】運(yùn)算符重載示例6.8 靜態(tài)成員6.8.1 靜態(tài)字段6.8.2 靜態(tài)屬性6.8.3 靜態(tài)構(gòu)造函數(shù)6.8.4 靜態(tài)方法6.8.5 靜態(tài)類516.8.1 6.8.1 靜態(tài)字段靜態(tài)字段52帶有static關(guān)鍵字的字段稱為靜態(tài)字段6.8.2 6.8.2 靜態(tài)屬性靜態(tài)屬性53類(或結(jié)構(gòu)體)的屬性前加static修飾符的屬性稱為靜態(tài)屬性靜態(tài)屬性不能訪問(wèn)類中的實(shí)例字段6.8.3 6.8.3 靜態(tài)構(gòu)造函數(shù)靜態(tài)構(gòu)造函數(shù)54靜態(tài)構(gòu)造函數(shù)的定義有static修飾符的構(gòu)造函數(shù)稱為靜態(tài)構(gòu)造函數(shù)靜態(tài)構(gòu)造函數(shù)的作用一般用于初始化類中的靜態(tài)字段,或用于執(zhí)行僅需執(zhí)行一次的特定操作靜態(tài)構(gòu)造函數(shù)的特點(diǎn)既沒(méi)有訪問(wèn)修飾符,也沒(méi)有參數(shù)只能存取類中的靜態(tài)字段在創(chuàng)建類的第一個(gè)實(shí)例或引用任何靜態(tài)成員之前,將自動(dòng)調(diào)用靜態(tài)構(gòu)造函數(shù)【例6-26】靜態(tài)構(gòu)造函數(shù)示例6.8.4 6.8.4 靜態(tài)方法靜態(tài)方法55靜態(tài)方法的定義方法名前加static修飾符的方法稱為靜態(tài)方法靜態(tài)方法的特點(diǎn)類的靜態(tài)方法中只能訪問(wèn)方法內(nèi)部的局部變量和類的靜態(tài)字段,不能訪問(wèn)類的實(shí)例字段對(duì)靜態(tài)方法的訪問(wèn)必須通過(guò)類名來(lái)實(shí)現(xiàn)【例6-27
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Chitinovorin-A-生命科學(xué)試劑-MCE
- 自身免疫性關(guān)節(jié)炎治療新突破:2025年免疫治療應(yīng)用案例分析
- 物聯(lián)網(wǎng)設(shè)備安全漏洞防護(hù)策略與智能交通安全報(bào)告2025
- 工業(yè)互聯(lián)網(wǎng)平臺(tái)邊緣計(jì)算硬件架構(gòu)創(chuàng)新設(shè)計(jì)研究報(bào)告
- 2025年不良資產(chǎn)處置行業(yè)市場(chǎng)格局與創(chuàng)新模式發(fā)展策略研究
- 低碳城市規(guī)劃與城市交通擁堵治理案例解析
- 電商知識(shí)產(chǎn)權(quán)保護(hù)與電子商務(wù)平臺(tái)知識(shí)產(chǎn)權(quán)保護(hù)與知識(shí)產(chǎn)權(quán)保護(hù)法律法規(guī)實(shí)施報(bào)告
- 審計(jì)處突發(fā)事件應(yīng)急預(yù)案突發(fā)事件應(yīng)急預(yù)案【六篇】
- 華晨寶馬供應(yīng)商管理制度
- 智慧食堂個(gè)人管理制度
- 移動(dòng)OA系統(tǒng)建設(shè)方案
- 2024年重慶高考化學(xué)試題卷(含答案解析)
- 人體器官講解課件
- DB3301-T 0256-2024 城市生態(tài)河道建設(shè)管理規(guī)范
- 2023年南京市衛(wèi)健委所屬部分事業(yè)單位招聘考試試題及答案
- 《管理會(huì)計(jì)》說(shuō)課及試講
- 二手農(nóng)機(jī)買賣合同協(xié)議書
- 2024年大學(xué)試題(宗教學(xué))-伊斯蘭教文化筆試考試歷年典型考題及考點(diǎn)含含答案
- 機(jī)床安全 壓力機(jī) 第 2 部分:機(jī)械壓力機(jī)安全要求
- 住院醫(yī)師規(guī)范化培訓(xùn)臨床小講課的設(shè)計(jì)與實(shí)施培訓(xùn)課件
- 多圖中華民族共同體概論課件第十三講先鋒隊(duì)與中華民族獨(dú)立解放(1919-1949)根據(jù)高等教育出版社教材制作
評(píng)論
0/150
提交評(píng)論