C_面向?qū)ο蟪绦蛟O(shè)計(jì)_第1頁(yè)
C_面向?qū)ο蟪绦蛟O(shè)計(jì)_第2頁(yè)
C_面向?qū)ο蟪绦蛟O(shè)計(jì)_第3頁(yè)
C_面向?qū)ο蟪绦蛟O(shè)計(jì)_第4頁(yè)
C_面向?qū)ο蟪绦蛟O(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院第第4 4章章 C#C#面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)4.1 C#4.1 C#面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)一、類(lèi)與對(duì)象一、類(lèi)與對(duì)象 1 1、類(lèi)的聲明、類(lèi)的聲明 格式:格式: 類(lèi)修飾符類(lèi)修飾符 class class 類(lèi)名類(lèi)名:基類(lèi)類(lèi)名基類(lèi)類(lèi)名,接口列表接口列表 類(lèi)成員類(lèi)成員; ; 幾點(diǎn)說(shuō)明:幾點(diǎn)說(shuō)明:AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 (1 1)類(lèi)修飾符有:)類(lèi)修飾符有:newnew、publicpublic、protectedprot

2、ected、privateprivate、internalinternal、abstractabstract、sealedsealed、partialpartial。 new new 僅允許在嵌套類(lèi)聲明時(shí)使用,表明類(lèi)中隱藏了由基類(lèi)中僅允許在嵌套類(lèi)聲明時(shí)使用,表明類(lèi)中隱藏了由基類(lèi)中繼承而來(lái)的與基類(lèi)中同名的成員類(lèi)。繼承而來(lái)的與基類(lèi)中同名的成員類(lèi)。 例例4-1 4-1 用用newnew修飾符隱藏基類(lèi)中的成員類(lèi)。修飾符隱藏基類(lèi)中的成員類(lèi)。 publicpublic 表明類(lèi)可由任何其他類(lèi)型訪問(wèn)。它和表明類(lèi)可由任何其他類(lèi)型訪問(wèn)。它和javajava語(yǔ)言中的語(yǔ)言中的publicpublic修飾符的用法類(lèi)似。

3、修飾符的用法類(lèi)似。 protectedprotected 一般在嵌套類(lèi)聲明時(shí)使用,表示可以在外層類(lèi)或外層類(lèi)一般在嵌套類(lèi)聲明時(shí)使用,表示可以在外層類(lèi)或外層類(lèi)的子類(lèi)中使用。的子類(lèi)中使用。AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 privateprivate 一般在嵌套類(lèi)聲明時(shí)使用,被一般在嵌套類(lèi)聲明時(shí)使用,被privateprivate關(guān)鍵字修飾的關(guān)鍵字修飾的內(nèi)層類(lèi)只能在外層類(lèi)范圍內(nèi)使用內(nèi)層類(lèi)只能在外層類(lèi)范圍內(nèi)使用 internalinternal 表明類(lèi)是一個(gè)內(nèi)部類(lèi),內(nèi)部類(lèi)必須和訪問(wèn)類(lèi)在同一程表明類(lèi)是一個(gè)內(nèi)部類(lèi),內(nèi)部類(lèi)必須和訪問(wèn)類(lèi)在同一程序集中,

4、否則訪問(wèn)類(lèi)不能訪問(wèn)用序集中,否則訪問(wèn)類(lèi)不能訪問(wèn)用internalinternal修飾的類(lèi)。修飾的類(lèi)。 例如:例如: / Assembly1.cs ,/ Assembly1.cs ,編譯成編譯成Assembly1.dllAssembly1.dll internal class BaseClass internal class BaseClass public static int intM public static int intM = 0; = 0; / Assembly2.cs / Assembly2.cs, ,編譯成編譯成Assembly2.exeAssembly2.exeAutoCAD

5、計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 class TestAccessclass TestAccess static void Main() static void Main() BaseClass myBase = new BaseClass BaseClass myBase = new BaseClass(); (); / Error / Error abstract abstract 表明類(lèi)是一個(gè)抽象類(lèi),抽象類(lèi)不能實(shí)例化,只能用作表明類(lèi)是一個(gè)抽象類(lèi),抽象類(lèi)不能實(shí)例化,只能用作其他類(lèi)的基類(lèi)。抽象類(lèi)的用途是提供多個(gè)派生類(lèi)可共享的其他類(lèi)的基類(lèi)。抽象類(lèi)的用

6、途是提供多個(gè)派生類(lèi)可共享的基類(lèi)的公共定義,抽象類(lèi)中的成員方法只聲明不實(shí)現(xiàn)。該基類(lèi)的公共定義,抽象類(lèi)中的成員方法只聲明不實(shí)現(xiàn)。該修飾符的用法與修飾符的用法與javajava語(yǔ)言相同。語(yǔ)言相同。 sealedsealed AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 表明類(lèi)是一個(gè)密封類(lèi)。密封類(lèi)不能用作基類(lèi),因而關(guān)表明類(lèi)是一個(gè)密封類(lèi)。密封類(lèi)不能用作基類(lèi),因而關(guān)鍵字鍵字sealedsealed和和abstractabstract不能同時(shí)使用。不能同時(shí)使用。 partial partial 表明類(lèi)是一個(gè)分部類(lèi),分部類(lèi)允許把類(lèi)定義拆分到多表明類(lèi)是一個(gè)分部類(lèi),分

7、部類(lèi)允許把類(lèi)定義拆分到多個(gè)文件中。個(gè)文件中。 (2)(2)類(lèi)修飾符可以?xún)蓚€(gè)或多個(gè)組合起來(lái)使用。如果省略類(lèi)修飾符可以?xún)蓚€(gè)或多個(gè)組合起來(lái)使用。如果省略類(lèi)修飾符,則默認(rèn)為私有修飾符類(lèi)修飾符,則默認(rèn)為私有修飾符privateprivate。 (3)(3)一個(gè)類(lèi)的基類(lèi)只能有一個(gè)(即單繼承),但一個(gè)類(lèi)一個(gè)類(lèi)的基類(lèi)只能有一個(gè)(即單繼承),但一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口??梢詫?shí)現(xiàn)多個(gè)接口。 (4)(4)C#C#中所有的類(lèi)都直接或間接繼承自中所有的類(lèi)都直接或間接繼承自System.ObjectSystem.Object類(lèi)類(lèi) 2 2、對(duì)象的聲明和實(shí)例化、對(duì)象的聲明和實(shí)例化AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)

8、絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 (1)(1)對(duì)象的聲明對(duì)象的聲明 格式:格式: 類(lèi)名類(lèi)名 對(duì)象名對(duì)象名; ; 作用:作用: 聲明一個(gè)對(duì)象變量。聲明一個(gè)對(duì)象變量。 (2)(2)對(duì)象實(shí)例化對(duì)象實(shí)例化 格式:格式: new new 類(lèi)名類(lèi)名(實(shí)參列表實(shí)參列表) 作用作用: :調(diào)用類(lèi)的構(gòu)造函數(shù)創(chuàng)建一個(gè)對(duì)象實(shí)例。調(diào)用類(lèi)的構(gòu)造函數(shù)創(chuàng)建一個(gè)對(duì)象實(shí)例。 對(duì)象的聲明和對(duì)象實(shí)例化結(jié)合起來(lái)用下面形式:對(duì)象的聲明和對(duì)象實(shí)例化結(jié)合起來(lái)用下面形式:AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 類(lèi)名類(lèi)名 對(duì)象名對(duì)象名=new =new 類(lèi)名類(lèi)名(實(shí)參列表實(shí)參列表)

9、例如:例如: class Aclass A A a=new A(); A a=new A(); 3 3、類(lèi)成員、類(lèi)成員 (1)(1)類(lèi)成員分類(lèi)類(lèi)成員分類(lèi) 在在c#c#中類(lèi)成員有以下幾種:中類(lèi)成員有以下幾種:AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 常量:代表與類(lèi)相關(guān)的常量值;常量:代表與類(lèi)相關(guān)的常量值; 變量:類(lèi)中的成員變量。變量:類(lèi)中的成員變量。 方法:完成類(lèi)的各種功能。方法:完成類(lèi)的各種功能。 屬性:用來(lái)封裝類(lèi)的域。利用屬性完成對(duì)類(lèi)的域的讀屬性:用來(lái)封裝類(lèi)的域。利用屬性完成對(duì)類(lèi)的域的讀寫(xiě)操作寫(xiě)操作 事件:由類(lèi)產(chǎn)生的通知,用于說(shuō)明發(fā)生了什么事

10、情。事件:由類(lèi)產(chǎn)生的通知,用于說(shuō)明發(fā)生了什么事情。 索引指示器:索引器允許類(lèi)的實(shí)例按照與數(shù)組相同的索引指示器:索引器允許類(lèi)的實(shí)例按照與數(shù)組相同的方式進(jìn)行索引,又稱(chēng)下標(biāo)指示器。方式進(jìn)行索引,又稱(chēng)下標(biāo)指示器。 運(yùn)算符:定義類(lèi)對(duì)象能使用的操作符。運(yùn)算符:定義類(lèi)對(duì)象能使用的操作符。 類(lèi)型:屬于類(lèi)的局部類(lèi)型。類(lèi)型:屬于類(lèi)的局部類(lèi)型。 構(gòu)造函數(shù):在類(lèi)被實(shí)例化的同時(shí)被執(zhí)行的成員函數(shù),構(gòu)造函數(shù):在類(lèi)被實(shí)例化的同時(shí)被執(zhí)行的成員函數(shù),主要是完成對(duì)象初始化操作。主要是完成對(duì)象初始化操作。AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 析構(gòu)函數(shù):在類(lèi)被刪除之前最后執(zhí)行的成員

11、函數(shù),主析構(gòu)函數(shù):在類(lèi)被刪除之前最后執(zhí)行的成員函數(shù),主要是完成對(duì)象結(jié)束時(shí)的收尾操作。要是完成對(duì)象結(jié)束時(shí)的收尾操作。 (2)(2)靜態(tài)成員和非靜態(tài)成員靜態(tài)成員和非靜態(tài)成員 聲明一個(gè)類(lèi)成員時(shí)使用了聲明一個(gè)類(lèi)成員時(shí)使用了staticstatic關(guān)鍵字,則該類(lèi)成員關(guān)鍵字,則該類(lèi)成員叫做靜態(tài)成員,反之叫非靜態(tài)成員。叫做靜態(tài)成員,反之叫非靜態(tài)成員。 靜態(tài)成員和非靜態(tài)成員的區(qū)別:靜態(tài)成員和非靜態(tài)成員的區(qū)別: 性質(zhì)不同性質(zhì)不同 靜態(tài)成員屬于類(lèi)所有,非靜態(tài)成員屬于類(lèi)的對(duì)象所有。靜態(tài)成員屬于類(lèi)所有,非靜態(tài)成員屬于類(lèi)的對(duì)象所有。 訪問(wèn)方式不同訪問(wèn)方式不同 靜態(tài)成員訪問(wèn)方式:靜態(tài)成員訪問(wèn)方式: 類(lèi)名類(lèi)名. .成員名成

12、員名(參數(shù)列表參數(shù)列表)AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 非靜態(tài)成員訪問(wèn)方式:非靜態(tài)成員訪問(wèn)方式: 對(duì)象名對(duì)象名. .成員名成員名(參數(shù)列表參數(shù)列表) 靜態(tài)成員方法和非靜態(tài)成員方法訪問(wèn)類(lèi)成員不同靜態(tài)成員方法和非靜態(tài)成員方法訪問(wèn)類(lèi)成員不同 靜態(tài)成員方法只能訪問(wèn)類(lèi)的靜態(tài)成員,非靜態(tài)成員方靜態(tài)成員方法只能訪問(wèn)類(lèi)的靜態(tài)成員,非靜態(tài)成員方法既可訪問(wèn)類(lèi)的靜態(tài)成員,也可訪問(wèn)類(lèi)的非靜態(tài)成員。法既可訪問(wèn)類(lèi)的靜態(tài)成員,也可訪問(wèn)類(lèi)的非靜態(tài)成員。 例例4-2 4-2 靜態(tài)成員和非靜態(tài)成員的訪問(wèn)。靜態(tài)成員和非靜態(tài)成員的訪問(wèn)。 (3)(3)類(lèi)成員訪問(wèn)修飾符類(lèi)成員訪

13、問(wèn)修飾符 在在C#C#中類(lèi)成員訪問(wèn)修飾符有:中類(lèi)成員訪問(wèn)修飾符有: publicpublic、protectedprotected、privateprivate、internalinternal。 public public 表明類(lèi)成員是公有成員。公有成員訪問(wèn)不受限制,可表明類(lèi)成員是公有成員。公有成員訪問(wèn)不受限制,可AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院以在類(lèi)內(nèi)和類(lèi)外的代碼中訪問(wèn)。公有成員提供了類(lèi)的外部以在類(lèi)內(nèi)和類(lèi)外的代碼中訪問(wèn)。公有成員提供了類(lèi)的外部接口。接口。 protectedprotected 表明類(lèi)成員是保護(hù)成員。保護(hù)成員可訪問(wèn)域限

14、定于類(lèi)表明類(lèi)成員是保護(hù)成員。保護(hù)成員可訪問(wèn)域限定于類(lèi)內(nèi)或從該類(lèi)派生的類(lèi)內(nèi),不允許類(lèi)外代碼訪問(wèn)。內(nèi)或從該類(lèi)派生的類(lèi)內(nèi),不允許類(lèi)外代碼訪問(wèn)。 privateprivate 表明類(lèi)成員是私有成員。私有成員可訪問(wèn)域限定于類(lèi)表明類(lèi)成員是私有成員。私有成員可訪問(wèn)域限定于類(lèi)內(nèi),不允許類(lèi)外和派生類(lèi)訪問(wèn)。內(nèi),不允許類(lèi)外和派生類(lèi)訪問(wèn)。 internalinternal 表明類(lèi)成員是內(nèi)部成員。內(nèi)部成員可訪問(wèn)域限定于類(lèi)表明類(lèi)成員是內(nèi)部成員。內(nèi)部成員可訪問(wèn)域限定于類(lèi)所在的程序集。所在的程序集。 例例4-3 4-3 類(lèi)成員訪問(wèn)修飾符的使用。類(lèi)成員訪問(wèn)修飾符的使用。AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編

15、程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 4 4、thisthis關(guān)鍵字關(guān)鍵字 thisthis關(guān)鍵字表示引用類(lèi)的當(dāng)前實(shí)例。關(guān)鍵字表示引用類(lèi)的當(dāng)前實(shí)例。 thisthis關(guān)鍵字的常用用途關(guān)鍵字的常用用途: : 限定被相似的名稱(chēng)隱藏的成員。限定被相似的名稱(chēng)隱藏的成員。 將將thisthis對(duì)象作為參數(shù)傳遞到其他方法。對(duì)象作為參數(shù)傳遞到其他方法。 聲明索引器。聲明索引器。 例例4-4 this4-4 this關(guān)鍵字的使用。關(guān)鍵字的使用。二、類(lèi)的構(gòu)造與析構(gòu)函數(shù)二、類(lèi)的構(gòu)造與析構(gòu)函數(shù) 1 1、構(gòu)造函數(shù)、構(gòu)造函數(shù) (1)(1)構(gòu)造函數(shù)的特點(diǎn)構(gòu)造函數(shù)的特點(diǎn) 構(gòu)造函數(shù)主要用于為對(duì)象分配存儲(chǔ)空間,并對(duì)數(shù)據(jù)成員構(gòu)造函數(shù)

16、主要用于為對(duì)象分配存儲(chǔ)空間,并對(duì)數(shù)據(jù)成員AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院進(jìn)行初始化。構(gòu)造函數(shù)具有如下特點(diǎn):進(jìn)行初始化。構(gòu)造函數(shù)具有如下特點(diǎn): 構(gòu)造函數(shù)的名字必須與類(lèi)同名;構(gòu)造函數(shù)的名字必須與類(lèi)同名; 構(gòu)造函數(shù)沒(méi)有返回類(lèi)型構(gòu)造函數(shù)沒(méi)有返回類(lèi)型, ,它可以帶參數(shù)它可以帶參數(shù), ,也可以不帶也可以不帶參數(shù);參數(shù); 構(gòu)造函數(shù)的主要作用是完成對(duì)類(lèi)的初始化工作;構(gòu)造函數(shù)的主要作用是完成對(duì)類(lèi)的初始化工作; 在創(chuàng)建一個(gè)類(lèi)的對(duì)象在創(chuàng)建一個(gè)類(lèi)的對(duì)象( (使用使用newnew關(guān)鍵字關(guān)鍵字) )時(shí),編譯系統(tǒng)時(shí),編譯系統(tǒng)回自動(dòng)調(diào)用類(lèi)的構(gòu)造函數(shù)初始化對(duì)象;回自動(dòng)調(diào)

17、用類(lèi)的構(gòu)造函數(shù)初始化對(duì)象; (2)(2)實(shí)例構(gòu)造函數(shù)實(shí)例構(gòu)造函數(shù) 負(fù)責(zé)初始化類(lèi)中的實(shí)例變量(非靜態(tài)變量),它只有負(fù)責(zé)初始化類(lèi)中的實(shí)例變量(非靜態(tài)變量),它只有在用戶(hù)用在用戶(hù)用newnew關(guān)鍵字為對(duì)象分配內(nèi)存時(shí)才被調(diào)用。實(shí)例構(gòu)關(guān)鍵字為對(duì)象分配內(nèi)存時(shí)才被調(diào)用。實(shí)例構(gòu)造函數(shù)可以重載。造函數(shù)可以重載。 (3)(3)靜態(tài)構(gòu)造函數(shù)靜態(tài)構(gòu)造函數(shù)AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 靜態(tài)構(gòu)造函數(shù)用來(lái)初始化類(lèi)的一些靜態(tài)成員變量。它僅靜態(tài)構(gòu)造函數(shù)用來(lái)初始化類(lèi)的一些靜態(tài)成員變量。它僅在創(chuàng)建第一個(gè)實(shí)例或引用任何靜態(tài)成員之前,由編譯系統(tǒng)在創(chuàng)建第一個(gè)實(shí)例或引用任何靜態(tài)

18、成員之前,由編譯系統(tǒng)自動(dòng)調(diào)用,靜態(tài)構(gòu)造函數(shù)只會(huì)被調(diào)用一次。自動(dòng)調(diào)用,靜態(tài)構(gòu)造函數(shù)只會(huì)被調(diào)用一次。 在使用靜態(tài)構(gòu)造函數(shù)的時(shí)候應(yīng)該注意幾點(diǎn):在使用靜態(tài)構(gòu)造函數(shù)的時(shí)候應(yīng)該注意幾點(diǎn): 靜態(tài)構(gòu)造函數(shù)既沒(méi)有訪問(wèn)修飾符,也沒(méi)有參數(shù)。靜態(tài)構(gòu)造函數(shù)既沒(méi)有訪問(wèn)修飾符,也沒(méi)有參數(shù)。 一個(gè)類(lèi)只能有一個(gè)靜態(tài)構(gòu)造函數(shù)。一個(gè)類(lèi)只能有一個(gè)靜態(tài)構(gòu)造函數(shù)。 無(wú)參數(shù)的構(gòu)造函數(shù)可以與靜態(tài)構(gòu)造函數(shù)共存。無(wú)參數(shù)的構(gòu)造函數(shù)可以與靜態(tài)構(gòu)造函數(shù)共存。 靜態(tài)構(gòu)造函數(shù)最多只運(yùn)行一次。靜態(tài)構(gòu)造函數(shù)最多只運(yùn)行一次。 靜態(tài)構(gòu)造函數(shù)不可以被繼承。靜態(tài)構(gòu)造函數(shù)不可以被繼承。 如果在一個(gè)類(lèi)中既沒(méi)有定義實(shí)例構(gòu)造函數(shù),又沒(méi)有定義如果在一個(gè)類(lèi)中既沒(méi)有定義實(shí)例構(gòu)造函

19、數(shù),又沒(méi)有定義靜態(tài)構(gòu)造函數(shù),則系統(tǒng)會(huì)給類(lèi)自動(dòng)生成一個(gè)實(shí)例構(gòu)造函數(shù)靜態(tài)構(gòu)造函數(shù),則系統(tǒng)會(huì)給類(lèi)自動(dòng)生成一個(gè)實(shí)例構(gòu)造函數(shù)AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院和靜態(tài)構(gòu)造函數(shù)。和靜態(tài)構(gòu)造函數(shù)。 例例4-5 4-5 構(gòu)造函數(shù)的使用。構(gòu)造函數(shù)的使用。 2 2、析構(gòu)函數(shù)、析構(gòu)函數(shù) 析構(gòu)函數(shù)在類(lèi)撤銷(xiāo)時(shí)運(yùn)行,常用來(lái)處理類(lèi)用完后的內(nèi)存析構(gòu)函數(shù)在類(lèi)撤銷(xiāo)時(shí)運(yùn)行,常用來(lái)處理類(lèi)用完后的內(nèi)存的回收工作。的回收工作。 使用析構(gòu)函數(shù)使用析構(gòu)函數(shù)時(shí)應(yīng)注意:時(shí)應(yīng)注意: 析構(gòu)函數(shù)不能帶有參數(shù);析構(gòu)函數(shù)不能帶有參數(shù); 析構(gòu)函數(shù)不能擁有訪問(wèn)修飾符析構(gòu)函數(shù)不能擁有訪問(wèn)修飾符; ; 并且不

20、能顯式地被調(diào)用,一個(gè)對(duì)象實(shí)例的析構(gòu)函數(shù)在并且不能顯式地被調(diào)用,一個(gè)對(duì)象實(shí)例的析構(gòu)函數(shù)在該對(duì)象被撤銷(xiāo)時(shí)自動(dòng)調(diào)用;該對(duì)象被撤銷(xiāo)時(shí)自動(dòng)調(diào)用; 析構(gòu)函數(shù)不能被繼承和重載;析構(gòu)函數(shù)不能被繼承和重載;AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 如果類(lèi)沒(méi)有析構(gòu)函數(shù),編譯系統(tǒng)就自動(dòng)調(diào)用默認(rèn)的如果類(lèi)沒(méi)有析構(gòu)函數(shù),編譯系統(tǒng)就自動(dòng)調(diào)用默認(rèn)的析構(gòu)函數(shù)。析構(gòu)函數(shù)。 在在C#C#中,系統(tǒng)提供了垃圾收集器幫助用戶(hù)完成內(nèi)存的中,系統(tǒng)提供了垃圾收集器幫助用戶(hù)完成內(nèi)存的回收工作,因而一般情況下不需要定義析構(gòu)函數(shù)回收工作,因而一般情況下不需要定義析構(gòu)函數(shù)。 AutoCAD計(jì)算機(jī)輔助設(shè)

21、計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院4.2 4.2 域、屬性與事件域、屬性與事件一、域一、域 域又稱(chēng)成員變量。域又稱(chēng)成員變量。 1 1、域聲明格式:、域聲明格式: 域修飾符域修飾符 類(lèi)型類(lèi)型 域名域名; ; 域的修飾符有:域的修飾符有:newnew、publicpublic、protectedprotected、internalinternal、privateprivate、staticstatic和和readonlyreadonly。修飾符。修飾符publicpublic、protectedprotected、internalinternal、privatepri

22、vate和和staticstatic的用法在前面已講過(guò)。的用法在前面已講過(guò)。 newnew new new修飾符可以顯式隱藏從基類(lèi)繼承的同名成員。修飾符可以顯式隱藏從基類(lèi)繼承的同名成員。 例如:例如:AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 public class BaseCpublic class BaseC public static int x = 55; public static int x = 55; class class DerivedCDerivedC: :BaseC BaseC new public static int

23、x = 100; new public static int x = 100; static void Main(string args) static void Main(string args) Console.WriteLine(x); Console.WriteLine(x); AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 readonly readonly 表明域?yàn)橹蛔x域。只讀域只能在域的定義中和它所屬表明域?yàn)橹蛔x域。只讀域只能在域的定義中和它所屬類(lèi)的構(gòu)造函數(shù)中進(jìn)行修改,在其他情況下是只讀的。類(lèi)的構(gòu)造函數(shù)中進(jìn)行修改,在其他情況下是只讀的。

24、 例如:例如: class myClassclass myClass public readonly public readonly double PI=3.14159; double PI=3.14159; 2 2、域的初始化、域的初始化AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 在在C#C#對(duì)域初始化有兩種方法:對(duì)域初始化有兩種方法: 對(duì)域聲明時(shí)初始化。對(duì)域聲明時(shí)初始化。 例如:例如: class myClassclass myClass public int public int x=100; x=100; 在構(gòu)造函數(shù)中初始化。在構(gòu)造函數(shù)中

25、初始化。二、屬性二、屬性AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 屬性是類(lèi)中的成員,用來(lái)讀寫(xiě)私有域的值。屬性是類(lèi)中的成員,用來(lái)讀寫(xiě)私有域的值。 1 1、屬性的聲明、屬性的聲明 屬性聲明的格式:屬性聲明的格式: 屬性修飾符屬性修飾符 屬性的類(lèi)型屬性的類(lèi)型 屬性名屬性名 set set寫(xiě)私有域語(yǔ)句寫(xiě)私有域語(yǔ)句 get get讀私有域語(yǔ)句讀私有域語(yǔ)句 (1) (1)屬性修飾符屬性修飾符 屬性修飾符有:屬性修飾符有:newnew、publicpublic、protectedprotected、internalinternal、privateprivat

26、e、staticstatic、virtualvirtual、overrideoverride和和abstractabstract。AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 修飾符修飾符newnew、publicpublic、protectedprotected、internalinternal、privateprivate、staticstatic和和abstractabstract的用法和前面講的用法基本類(lèi)似,只是的用法和前面講的用法基本類(lèi)似,只是現(xiàn)在用于屬性。現(xiàn)在用于屬性。 用用virtualvirtual修飾屬性表明該屬性是虛擬屬性,虛擬

27、屬性修飾屬性表明該屬性是虛擬屬性,虛擬屬性可在派生類(lèi)中重寫(xiě)該屬性??稍谂缮?lèi)中重寫(xiě)該屬性。overrideoverride只能用在派生類(lèi)中修只能用在派生類(lèi)中修飾重寫(xiě)的屬性。飾重寫(xiě)的屬性。 例如:例如: class Aclass A int pvalue = 1; int pvalue = 1; public virtual int P public virtual int P AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 get return pvalue; get return pvalue; set pvalue = value; set pv

28、alue = value; class B : A class B : A public override int P public override int P get return base.P; get return base.P; setbase.P = value; setbase.P = value; AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 (2)set (2)set訪問(wèn)器訪問(wèn)器 setset訪問(wèn)器用來(lái)寫(xiě)私有域的值,因而至少包含語(yǔ)句:訪問(wèn)器用來(lái)寫(xiě)私有域的值,因而至少包含語(yǔ)句: 私有域名私有域名=value;=value; (3)g

29、et (3)get訪問(wèn)器訪問(wèn)器 getget訪問(wèn)器用來(lái)讀私有域的值,因而至少包含語(yǔ)句:訪問(wèn)器用來(lái)讀私有域的值,因而至少包含語(yǔ)句: return return 私有域名私有域名; ; 2 2、屬性的訪問(wèn)、屬性的訪問(wèn) 靜態(tài)屬性的訪問(wèn)格式:靜態(tài)屬性的訪問(wèn)格式:AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 類(lèi)名類(lèi)名. .屬性名屬性名 非靜態(tài)屬性的訪問(wèn)格式:非靜態(tài)屬性的訪問(wèn)格式: 對(duì)象名對(duì)象名. .屬性名屬性名 例例4-6 4-6 屬性的使用屬性的使用三、事件三、事件 事件是類(lèi)在發(fā)生其關(guān)注的事情時(shí)用來(lái)通知操作的一種方事件是類(lèi)在發(fā)生其關(guān)注的事情時(shí)用來(lái)通知操作的

30、一種方式。引發(fā)事件的操作可能是用戶(hù)交互(例如鼠標(biāo)單擊),式。引發(fā)事件的操作可能是用戶(hù)交互(例如鼠標(biāo)單擊),也可能是某些其他的程序邏輯。引發(fā)(觸發(fā))事件的對(duì)象也可能是某些其他的程序邏輯。引發(fā)(觸發(fā))事件的對(duì)象叫做事件發(fā)送方。捕獲事件并對(duì)其做出響應(yīng)的對(duì)象叫做事叫做事件發(fā)送方。捕獲事件并對(duì)其做出響應(yīng)的對(duì)象叫做事件接收方。件接收方。 1 1、事件的聲明、事件的聲明 事件聲明的格式:事件聲明的格式:AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 事件修飾符事件修飾符 event event 委托類(lèi)型名委托類(lèi)型名 事件名事件名; ; 從事件聲明的格式來(lái)看,聲明事

31、件前必須聲明一個(gè)委從事件聲明的格式來(lái)看,聲明事件前必須聲明一個(gè)委托類(lèi)型名。在命名空間托類(lèi)型名。在命名空間SystemSystem中預(yù)定義了一些委托類(lèi)型中預(yù)定義了一些委托類(lèi)型, ,其中最常見(jiàn)的是其中最常見(jiàn)的是EventHandlerEventHandler,其聲明是:,其聲明是: public delegate void EventHandlerpublic delegate void EventHandler ( ( Object sender, Object sender, EventArgs EventArgs e) e) 事件修飾符有:事件修飾符有:newnew、publicpublic

32、、protectedprotected、internalinternal、privateprivate和和staticstatic,這些修飾符的用法和前面講的類(lèi)似,這些修飾符的用法和前面講的類(lèi)似,只不過(guò)現(xiàn)在用于事件。只不過(guò)現(xiàn)在用于事件。 2 2、事件的訂閱與取消、事件的訂閱與取消 (1)(1)事件訂閱的格式事件訂閱的格式AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 對(duì)象名對(duì)象名. .事件名事件名+=new +=new 委托類(lèi)型名委托類(lèi)型名( (事件處理函數(shù)名事件處理函數(shù)名);); (2) (2)事件取消的格式事件取消的格式 對(duì)象名對(duì)象名. .事件名

33、事件名-=new -=new 委托類(lèi)型名委托類(lèi)型名( (事件處理函數(shù)名事件處理函數(shù)名);); 例例4-7 4-7 事件的使用事件的使用 3 3、事件編程的內(nèi)容、事件編程的內(nèi)容 從例從例4-74-7可以看出,事件編程包含以下內(nèi)容:可以看出,事件編程包含以下內(nèi)容: 在事件類(lèi)中聲明一個(gè)委托。在事件類(lèi)中聲明一個(gè)委托。 在事件類(lèi)中聲明事件。在事件類(lèi)中聲明事件。 在事件類(lèi)中定義觸發(fā)事件的方法。在事件類(lèi)中定義觸發(fā)事件的方法。 在事件類(lèi)的屬性或方法中觸發(fā)事件。在事件類(lèi)的屬性或方法中觸發(fā)事件。AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 在訪問(wèn)事件類(lèi)的程序中定義事件

34、處理函數(shù)。在訪問(wèn)事件類(lèi)的程序中定義事件處理函數(shù)。 在訪問(wèn)事件類(lèi)的程序中訂閱事件。在訪問(wèn)事件類(lèi)的程序中訂閱事件。 .NET Framework.NET Framework類(lèi)庫(kù)中的類(lèi)預(yù)定義了一些事件,對(duì)這類(lèi)庫(kù)中的類(lèi)預(yù)定義了一些事件,對(duì)這些預(yù)定義的事件,只需要在訪問(wèn)類(lèi)的程序中定義事件處理些預(yù)定義的事件,只需要在訪問(wèn)類(lèi)的程序中定義事件處理函數(shù)和訂閱事件。函數(shù)和訂閱事件。 在在Windows FormsWindows Forms應(yīng)用程序中事件訂閱的格式:應(yīng)用程序中事件訂閱的格式: 對(duì)象名對(duì)象名. .事件名事件名+=new +=new 定義事件的委托類(lèi)型名定義事件的委托類(lèi)型名 ( (事事件處理函數(shù)名件處理

35、函數(shù)名); ); 在在ASP.NetASP.Net應(yīng)用程序中事件訂閱的格式:應(yīng)用程序中事件訂閱的格式: asp:/AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院4.3 4.3 方法方法一、方法的聲明一、方法的聲明 (1)(1)方法聲明的格式:方法聲明的格式: 方法修飾符方法修飾符 返回類(lèi)型返回類(lèi)型 方法名方法名( (參數(shù)列表參數(shù)列表) ) 方法實(shí)現(xiàn)部分方法實(shí)現(xiàn)部分 (2) (2)方法修飾符方法修飾符 方法修飾符有方法修飾符有:new:new、publicpublic、protectedprotected、internalinternal、privat

36、eprivate、staticstatic、virtualvirtual、sealedsealed、overrideoverride、abstractabstract和和externextern。其中修飾符。其中修飾符newnew、publicpublic、protectedprotected、internalinternal、privateprivate、staticstatic、virtualvirtual、overrideoverride和和AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院abstractabstract的用法和前面講的類(lèi)似,只不

37、過(guò)現(xiàn)在用于方法。的用法和前面講的類(lèi)似,只不過(guò)現(xiàn)在用于方法。 sealedsealed 表明方法是密封方法。密封方法在派生類(lèi)中不能被重表明方法是密封方法。密封方法在派生類(lèi)中不能被重寫(xiě)。寫(xiě)。 externextern 表明方法是外部方法。表明方法是外部方法。externextern常用于在非托管代碼中常用于在非托管代碼中調(diào)用調(diào)用DllDll文件中的函數(shù)使用。文件中的函數(shù)使用。二、方法的參數(shù)二、方法的參數(shù) C#C#支持四種類(lèi)型的參數(shù),分別為:支持四種類(lèi)型的參數(shù),分別為: 值類(lèi)型:不含任何修飾符;值類(lèi)型:不含任何修飾符; 引用類(lèi)型:使用引用類(lèi)型:使用refref修飾符聲明;修飾符聲明;AutoCAD計(jì)

38、算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 輸出參數(shù):使用輸出參數(shù):使用outout修飾符聲明;修飾符聲明; 參數(shù)數(shù)組:使用參數(shù)數(shù)組:使用paramsparams修飾符聲明。修飾符聲明。 1 1、值類(lèi)型參數(shù)傳遞、值類(lèi)型參數(shù)傳遞 值類(lèi)型參數(shù)傳遞也稱(chēng)為值傳遞,就是實(shí)參將其值傳遞值類(lèi)型參數(shù)傳遞也稱(chēng)為值傳遞,就是實(shí)參將其值傳遞給形參,形參值的改變不會(huì)引起實(shí)參值的改變。給形參,形參值的改變不會(huì)引起實(shí)參值的改變。 例例4-8 4-8 值類(lèi)型參數(shù)的使用。值類(lèi)型參數(shù)的使用。 2 2、引用類(lèi)型參數(shù)傳遞、引用類(lèi)型參數(shù)傳遞 引用類(lèi)型傳遞方式下,方法的參數(shù)以引用類(lèi)型傳遞方式下,方法的參

39、數(shù)以refref修飾符聲明,修飾符聲明,實(shí)參將其引用傳遞到形參,即實(shí)參和形參共用相應(yīng)的存儲(chǔ)實(shí)參將其引用傳遞到形參,即實(shí)參和形參共用相應(yīng)的存儲(chǔ)空間,因而形參值的改變會(huì)引起實(shí)參值的改變??臻g,因而形參值的改變會(huì)引起實(shí)參值的改變。 例例4-9 4-9 引用類(lèi)型參數(shù)的使用。引用類(lèi)型參數(shù)的使用。AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 3 3、輸出類(lèi)型參數(shù)傳遞、輸出類(lèi)型參數(shù)傳遞 outout關(guān)鍵字會(huì)使參數(shù)通過(guò)引用來(lái)傳遞。這與關(guān)鍵字會(huì)使參數(shù)通過(guò)引用來(lái)傳遞。這與refref關(guān)鍵字關(guān)鍵字類(lèi)似,不同之處在于類(lèi)似,不同之處在于refref要求變量必須在傳遞之前進(jìn)行

40、初要求變量必須在傳遞之前進(jìn)行初始化。若要使用始化。若要使用outout參數(shù),方法定義和調(diào)用方法都必須顯參數(shù),方法定義和調(diào)用方法都必須顯式使用式使用outout關(guān)鍵字。使用關(guān)鍵字。使用outout關(guān)鍵字修飾形參,需要在方法關(guān)鍵字修飾形參,需要在方法返回之前給形參賦值。返回之前給形參賦值。 例如:例如: class OutExampleclass OutExample static void Method(out int static void Method(out int i) i) i = 44; i = 44;AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西

41、理工學(xué)院 static void Main() static void Main() int int value; value; Method(out value); Method(out value); Console.WriteLine(value); Console.WriteLine(value);/輸出輸出4444 4 4、數(shù)組類(lèi)型參數(shù)傳遞、數(shù)組類(lèi)型參數(shù)傳遞 數(shù)組可作為參數(shù)傳遞給方法。因?yàn)閿?shù)組是引用類(lèi)型,數(shù)組可作為參數(shù)傳遞給方法。因?yàn)閿?shù)組是引用類(lèi)型,所以方法可以更改元素的值。所以方法可以更改元素的值。 例例4-10 4-10 用選擇法對(duì)用選擇法對(duì)6 6個(gè)整數(shù)排序。個(gè)整數(shù)排序。三、方法

42、的重載三、方法的重載 方法的重載是指一組具有相似功能的方法具有相同的方法的重載是指一組具有相似功能的方法具有相同的方法名,只不過(guò)參數(shù)類(lèi)型、參數(shù)個(gè)數(shù)和返回值類(lèi)型不同。方法名,只不過(guò)參數(shù)類(lèi)型、參數(shù)個(gè)數(shù)和返回值類(lèi)型不同。AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 例如:例如: class MyClassclass MyClass public static int max(int x,int public static int max(int x,int y) y) if(xy) if(xy) return x; return x; else else

43、 return y; return y; public static float max(float x,float y) public static float max(float x,float y)AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 if(xy) if(xy) return x; return x; else else return y; return y; 四、外部方法四、外部方法 extern extern 修飾符用于聲明在外部實(shí)現(xiàn)的方法。修飾符用于聲明在外部實(shí)現(xiàn)的方法。extern extern 修飾符的常見(jiàn)用法是在使用修飾符

44、的常見(jiàn)用法是在使用 InteropInterop 服務(wù)調(diào)入非托管代服務(wù)調(diào)入非托管代AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院碼時(shí)與碼時(shí)與DllImportDllImport屬性一起使用,在這種情況下,該方法還屬性一起使用,在這種情況下,該方法還必須聲明為必須聲明為 staticstatic。 例例4-11 4-11 以消息框的形式顯示字符串。以消息框的形式顯示字符串。五、運(yùn)算符的重載五、運(yùn)算符的重載 在在C#C#中,允許在一個(gè)類(lèi)中重載標(biāo)準(zhǔn)運(yùn)算符,目的在于可中,允許在一個(gè)類(lèi)中重載標(biāo)準(zhǔn)運(yùn)算符,目的在于可以用標(biāo)準(zhǔn)運(yùn)算符運(yùn)算該類(lèi)的對(duì)象。以用標(biāo)準(zhǔn)運(yùn)算符運(yùn)算

45、該類(lèi)的對(duì)象。 實(shí)現(xiàn)運(yùn)算符重載,就是在類(lèi)中定義一個(gè)成員方法,格式實(shí)現(xiàn)運(yùn)算符重載,就是在類(lèi)中定義一個(gè)成員方法,格式為:為: public static public static 類(lèi)名類(lèi)名 operatoroperator運(yùn)算符運(yùn)算符( (形參列表形參列表) ) AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 幾點(diǎn)說(shuō)明幾點(diǎn)說(shuō)明: : 方法必須用方法必須用publicpublic和和staticstatic修飾。修飾。 返回值類(lèi)型必須是運(yùn)算符重載所在的類(lèi)。形參列表中返回值類(lèi)型必須是運(yùn)算符重載所在的類(lèi)。形參列表中參數(shù)類(lèi)型也必須是運(yùn)算符重載所在的類(lèi)。參數(shù)類(lèi)型也

46、必須是運(yùn)算符重載所在的類(lèi)。 方法名必須是方法名必須是operatoroperator運(yùn)算符。運(yùn)算符。 可重載的運(yùn)算符有:可重載的運(yùn)算符有: 一元運(yùn)算符:一元運(yùn)算符:+ +、- -、! !、 、+、-、truetrue、falsefalse 二元運(yùn)算符:二元運(yùn)算符:+ +、- -、* *、/ /、% %、& &、| |、 、=、!=!=、 、 =、= 重載相等運(yùn)算符重載相等運(yùn)算符 (=) (=) 時(shí),還必須重載不相等運(yùn)算符時(shí),還必須重載不相等運(yùn)算符 (!=)(!=)。 運(yùn)算符以及運(yùn)算符以及 = = = 運(yùn)算符也必須成對(duì)重運(yùn)算符也必須成對(duì)重載載AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)

47、編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 例例4-12 4-12 定義復(fù)數(shù)類(lèi),重載定義復(fù)數(shù)類(lèi),重載+和和- -運(yùn)算符,并編程測(cè)試。運(yùn)算符,并編程測(cè)試。AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院4.4 4.4 索引器索引器 索引器允許用戶(hù)按照與數(shù)組相同的方式對(duì)類(lèi)、結(jié)構(gòu)或索引器允許用戶(hù)按照與數(shù)組相同的方式對(duì)類(lèi)、結(jié)構(gòu)或接口進(jìn)行索引。接口進(jìn)行索引。 索引器定義格式:索引器定義格式: public public 類(lèi)型類(lèi)型 thisintthisint index index get get讀域數(shù)組元素語(yǔ)句讀域數(shù)組元素語(yǔ)句 set set寫(xiě)域數(shù)組

48、元素語(yǔ)句寫(xiě)域數(shù)組元素語(yǔ)句 例例4-13 4-13 索引器的使用。索引器的使用。AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院4.5 4.5 繼承與多態(tài)繼承與多態(tài)一、派生類(lèi)一、派生類(lèi) 派生類(lèi)也稱(chēng)子類(lèi),其定義格式:派生類(lèi)也稱(chēng)子類(lèi),其定義格式: 類(lèi)修飾符類(lèi)修飾符 class class 類(lèi)名類(lèi)名: :基類(lèi)類(lèi)名基類(lèi)類(lèi)名,接口列表接口列表 類(lèi)成員類(lèi)成員; ; 幾點(diǎn)說(shuō)明:幾點(diǎn)說(shuō)明: (1)(1)類(lèi)修飾符有:類(lèi)修飾符有:newnew、publicpublic、protectedprotected、privateprivate、internalinternal、abstractabstract、sealedsealed、partialpartial。這些修飾符的用。這些修飾符的用法前面已經(jīng)講過(guò)。法前面已經(jīng)講過(guò)。AutoCAD計(jì)算機(jī)輔助設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程技術(shù) 陜西理工學(xué)院陜西理工學(xué)院 (2) (2)一個(gè)類(lèi)的基類(lèi)只能有一個(gè)(即單繼承),但一個(gè)類(lèi)可一個(gè)類(lèi)的基類(lèi)只能有一個(gè)(即單繼承),但一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口。以實(shí)現(xiàn)多個(gè)接口。 (3)(3)派生類(lèi)可以繼承基類(lèi)中派生類(lèi)可以繼承基類(lèi)中pub

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論