版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、軟件設(shè)計環(huán)境課程概念匯總,C#,目錄,1.托管代碼 2.命名空間 3.類與對象 4.控制臺程序類Console 5.裝箱和拆箱 6.引用類型的變量與值變量 7.結(jié)構(gòu)類型 8. 枚舉類型 9.C#編程常用的類及其常用屬性、方法 10.面向?qū)ο蟪绦蛟O(shè)計的基本概念,C#,目錄,11. 構(gòu)造函數(shù) 12. 析構(gòu)函數(shù) 13. 靜態(tài)成員 14. 結(jié)構(gòu)與類的區(qū)別 15. 屬性 16. 方法的參數(shù) 17. 索引器 18. 繼承 19. 委托 20. 接口,C#,1.托管代碼,.NET編譯生成的中間語言叫托管代碼,也叫MSIL(microsoft intermediate language,中間層語言)不依賴于機(jī)
2、器,不依賴于操作系統(tǒng)。,C#,2.命名空間,命名空間” 是.NET中的各種語言使用的一種代碼組織的形式。C#有1000多個類,每個類都放在自己的命名空間里。 分為:系統(tǒng)命名空間和用戶自定義命名空間。 使用Using 關(guān)鍵字來導(dǎo)入命名空間,以便使用其中的類。,C#,3.類與對象,類是一種數(shù)據(jù)結(jié)構(gòu),它可以封裝數(shù)據(jù)成員、方法成員和其他的類。 C#所有的語句都必須包含在類內(nèi),類是C#語言的核心。 類也分為內(nèi)置類和用戶自定義類。內(nèi)置類存放在各自的命名空間中。 用戶自定義類關(guān)鍵字為class,語法如下:,class 類名 類體 ,C#,4.控制臺程序類Console,C#內(nèi)置類,實(shí)現(xiàn)控制臺應(yīng)用程序的標(biāo)準(zhǔn)輸
3、入、輸出。 常用方法: Write(內(nèi)容) :在控制臺上輸出內(nèi)容后不換行,后面的內(nèi)容緊跟在前面。 WriteLine (內(nèi)容) :在控制臺上輸出內(nèi)容后立即換行,后面的內(nèi)容輸出在下一行。 Read() :在控制臺上輸入單個字符賦值給Char型變量 ReadLine():在控制臺上輸入多個字符賦值給String型變量,C#,裝箱:值類型的數(shù)據(jù)隱式地轉(zhuǎn)換成一個對象類型。 拆箱:將一個對象類型的數(shù)據(jù)顯式地轉(zhuǎn)換成一個值類型數(shù)據(jù)。,5.裝箱和拆箱,C#,值類型的變量其內(nèi)容是對象的值; 引用類型的變量其內(nèi)容是對象的地址而不是值,給引用變量賦值要 使用new操作符。,6.引用類型的變量與值類型的變量,C#,7
4、.結(jié)構(gòu)類型,把一系列相關(guān)的變量組織成一個單一實(shí)體的類型稱為結(jié)構(gòu)類型。其中的每個變量稱為結(jié)構(gòu)的成員。 結(jié)構(gòu)用struct 關(guān)鍵字定義。 結(jié)構(gòu)的特點(diǎn): 1、值類型 2、向方法傳遞一個結(jié)構(gòu)類型的變量時,按數(shù)值傳遞 3、結(jié)構(gòu)的實(shí)例化可以不用new運(yùn)算符。在結(jié)構(gòu)體中含有構(gòu)造函數(shù)時,必須用new運(yùn)算符。 4、結(jié)構(gòu)中可以聲明構(gòu)造函數(shù),但它們必須含有參數(shù)。 5、在結(jié)構(gòu)中初始化成員是錯誤的。,C#,8. 枚舉類型,枚舉類型也是一種自定義值類型,枚舉類型的聲明 用關(guān)鍵字enum 枚舉的實(shí)質(zhì)是符號常量的集合,每個符號常量關(guān)聯(lián)一個值(默認(rèn)是int型的) 使用枚舉的好處在于提高程序的可讀性 枚舉通常和分支語句結(jié)合使用
5、在變量的值可以預(yù)知的情況下,可以去定義枚舉類型。,C#,9.C#編程常用的類及其常用屬性、方法,1)String類 屬性:length 屬性使用的語法為:對象名.length 方法有:,C#,(1)Compare: 特點(diǎn):靜態(tài)方法,通過類名調(diào)用,用于比較2個字符串是否相等。 返回值:逐個按ascii碼比較大小,若兩串相等返回值為0;小于返回值為-1;大于返回值為1 語法:String.Compare(str1,str2),C#,(2)CompareTo: 非靜態(tài)方法,需要string類的對象調(diào)用 str1.CompareTo(str2),C#,(3)IndexOf:非靜態(tài)方法,求子串位置 語法
6、為: 母串.IndexOf(子串,搜索起始序號,搜索的個數(shù)) 注意:子串可以為單個字符或者多個字符 若子串不存在則返回-1;存在則返回其在母串的起始位置的索引值,C#,(4)Format:靜態(tài)方法,格式化字符串 語法為:String.Format(指定格式,待格式化的字符串) 例:string str1, str2; str1 = C#; str2 = 經(jīng)典!; label3.Text =String.Format(0,1!, str1, str2);,C#,(5)Split:非靜態(tài)方法,把整串按照某個分隔符分成一系列小的字符串,返回一個字符串?dāng)?shù)組。 語法為: 待分割的串.Split(分隔符)
7、,C#,(6)substring:非靜態(tài)方法,對字符串從指定索引處取指定個數(shù)的字符串。 語法:str1.Substring(指定索引,個數(shù));,C#,2)Math類:靜態(tài)方法,(1)Abs(參數(shù)):求參數(shù)的絕對值,結(jié)果為整型; int n = Math.Abs (-8); (2)Exp(次冪):返回e的指數(shù)次冪,結(jié)果為double型; double m = Math.Exp(2); (3)Pow(指定數(shù)字,指定次冪):返回指定數(shù)字的指定次冪,結(jié)果為double型; double m = Math.Pow (2,2); (4)Sqrt(參數(shù)):返回參數(shù)的平方根,結(jié)果為double型; doubl
8、e m = Math.Sqrt(4);,C#,3)Convert類強(qiáng)制轉(zhuǎn)換類。常用的靜態(tài)方法:,C#,4) DateTime類:時間運(yùn)算類,常用屬性: Now:獲得系統(tǒng)時間,結(jié)果為datetime類型 Date:獲得日期部分,結(jié)果為datetime類型 Year:獲得日期的年,結(jié)果為int類型 Month:獲得日期的月,結(jié)果為int類型 Day:獲得日期的日, 結(jié)果為int類型 Dayofweek:獲得日期是星期幾, 結(jié)果為Dayofweek類型,值為英文下的星期。通過Convert.toint可以將英文星期轉(zhuǎn)換為其對應(yīng)的序號,sunday的序號為0,C#,5) System.Random類:
9、專門產(chǎn)生隨機(jī)數(shù)的類。 常用方法(均為非靜態(tài)方法): Next():產(chǎn)生1個02147483647之間的整數(shù) Next(i):產(chǎn)生1個0i之間的整數(shù)(包含邊界) Next(i,j):產(chǎn)生1個ij之間的整數(shù)(包含i,但不包含j) NextDouble():產(chǎn)生1個01之間的隨機(jī)小數(shù)整數(shù)(不包括0和1),C#,6) Array類:是所有數(shù)組類型的基類型。 常用的屬性和方法如下: 1. Length屬性 用于返回數(shù)組的大小。結(jié)果為整型。 使用Length屬性的一般形式為: .Length,C#,7) ArrayList類,ArrayList類用于建立不定長度的集合,屬于C#的集合類,該類的數(shù)據(jù)類型為O
10、bject。 使用ArrayList類需引入System.Collections命名空間.,C#,8)List類是ArrayList類的泛型等效類。,屬于System.Collections.Generic命名空間。,C#,9)Dictionary類:二維集合類 每一個元素都是一個鍵值對(由2個元素組成:鍵和值) 鍵必須是唯一的,而值不需要唯一 鍵和值都可以是任何類型 通過對象名. key去找到對應(yīng)的值。 好處在于:數(shù)據(jù)量大時通過鍵來檢索值的速度是非??斓?Dictionary對象在使用前,必須聲明它的鍵類型和值類型。 屬于System.Collections.Generic命名空間。,C#,
11、10.面向?qū)ο蟪绦蛟O(shè)計的基本概念,類和對象 屬性、方法和事件 封裝: 通過類還實(shí)現(xiàn),提高了代碼的可用性和安全性 繼承:減少了代碼書寫量 多態(tài):同樣的成員簽名卻實(shí)現(xiàn)不同的功能 重載與重寫,C#,重載:同一個類中,方法名稱相同,但參數(shù)類型或參數(shù)個數(shù)不同就會有不同的具體實(shí)現(xiàn)。 重寫: 方法名稱相同,參數(shù)類型或參數(shù)個數(shù)也相同但有不同的具體實(shí)現(xiàn)。體現(xiàn)在基類和派生類的同名方法中。 通過在基類的方法名前加virtual關(guān)鍵字、派生類的同名方法名前加override關(guān)鍵字來實(shí)現(xiàn)。,C#,封裝、繼承和多態(tài)是面向?qū)ο蟪绦蛟O(shè)計語言的3個主要特征。,C#,11 構(gòu)造函數(shù),構(gòu)造函數(shù)是用來對類的對象進(jìn)行初始化的特殊方法。
12、 1.一般地,構(gòu)造函數(shù)總是public類型的。 2.構(gòu)造函數(shù)名必須與它所在的類同名;不聲明返回類型,并且沒有任何返回值。這與返回值類型為void的函數(shù)不同。 3.構(gòu)造函數(shù)參數(shù)可以沒有,也可以有一個或多個。,C#,當(dāng)創(chuàng)建派生類的對象時,就會展開一個鏈?zhǔn)降臉?gòu)造函數(shù)調(diào)用。派生類構(gòu)造函數(shù)在執(zhí)行它自己的構(gòu)造函數(shù)之前,首先會顯示或隱式地調(diào)用基類的構(gòu)造函數(shù),默認(rèn)情況下調(diào)用基類中的無參構(gòu)造函數(shù)。(自頂向下調(diào)用),C#,12 析構(gòu)函數(shù),析構(gòu)函數(shù)是用于實(shí)現(xiàn)析構(gòu)類實(shí)例(即釋放對象)的方法。 對象生命周期結(jié)束時自動調(diào)用析構(gòu)函數(shù),釋放其所占的內(nèi)存。調(diào)用的順序就像棧結(jié)構(gòu),先進(jìn)后出,最后生成的對象先被釋放。 聲明的語法形式
13、: 析構(gòu)函數(shù)名( ) 析構(gòu)函數(shù)體 ,C#,說明: 1.析構(gòu)函數(shù)名也必須與類名相同,且前面需加“” 。 2.析構(gòu)函數(shù)不能寫返回類型,也不能帶參數(shù),因此它不可能被重載。 3.一個類最多只能有一個析構(gòu)函數(shù)。 4.一個類如果沒有顯式地聲明析構(gòu)函數(shù),則編譯器將自動產(chǎn)生一個缺省的析構(gòu)函數(shù)。 5.析構(gòu)函數(shù)不能由程序顯式地調(diào)用,而是由系統(tǒng)在釋放對象時自動調(diào)用。 6.如果這個對象是一個派生類對象,那么在調(diào)用析構(gòu)函數(shù)時也會產(chǎn)生鏈?zhǔn)椒磻?yīng),首先執(zhí)行派生類的析構(gòu)函數(shù),然后執(zhí)行基類的析構(gòu)函數(shù),執(zhí)行順序正好與構(gòu)造函數(shù)相反。,【例4】,C#,13 靜態(tài)成員,類中的靜態(tài)成員包括靜態(tài)字段和靜態(tài)方法。 靜態(tài)成員屬于類所有,非靜態(tài)成
14、員屬于類的對象所有。 靜態(tài)成員用static關(guān)鍵詞修飾。 靜態(tài)字段的存儲空間在類公共區(qū),不屬于任何一個類對象。 靜態(tài)方法只能訪問靜態(tài)字段,不能訪問類中的非靜態(tài)成員。 靜態(tài)構(gòu)造函數(shù)的目的是用于對靜態(tài)字段進(jìn)行初始化,不能對非靜態(tài)數(shù)據(jù)成員進(jìn)行初始化。,C#,說明: 1.靜態(tài)構(gòu)造函數(shù)名必須與類同名。 2.靜態(tài)構(gòu)造函數(shù)不能有參數(shù)。 3.如果類中沒有聲明靜態(tài)構(gòu)造函數(shù),而又包含靜態(tài)字段,那么編譯器會自動生成一個默認(rèn)的靜態(tài)構(gòu)造函數(shù)。,C#,14.結(jié)構(gòu)與類的區(qū)別,引用類型(定義在堆上),必須使用new實(shí)例化,系統(tǒng)會提供默認(rèn)的構(gòu)造函數(shù)。 構(gòu)造函數(shù)也不必初始化字段,有析構(gòu)函數(shù),可以被繼承,可以,C#,15.屬性,屬
15、性也是類的成員,它用來描述對象的特征。它的用處在于:提供靈活的機(jī)制來讀取私有字段的值。 屬性總是伴隨著私有字段的出現(xiàn)而出現(xiàn),它的本質(zhì)是方法,在這種方法中包含“訪問器”:get訪問器(也稱讀訪問器)和set訪問器(也稱寫訪問器) ,分別用來將類的私有字段值讀出來以及對其進(jìn)行賦值。,C#,屬性的聲明語法格式: 屬性修飾符 類型 屬性名 get return 私有成員名 Set 私有成員名=value ,C#,屬性的分類 只讀屬性(只含有g(shù)et訪問器) 只能讀出私有字段的值,無法對其修改 只寫屬性(只含有set訪問器) 只能給私有字段賦值,無法將其讀出 讀寫屬性(兩者都含) 既能賦值也能讀出。,C#
16、,16.方法的參數(shù),值參數(shù)(參數(shù)前沒有修飾符) 引用參數(shù)(行參數(shù)前有ref修飾符) 輸出參數(shù)(參數(shù)前有out修飾符) 可變長度參數(shù)(參數(shù)前有params修飾符),值參數(shù):形實(shí)參分居,形參變,實(shí)參不變 引用參數(shù):形實(shí)參同居,形參變,實(shí)參跟著變 輸出參數(shù):形實(shí)參同居,形參變,實(shí)參跟著變;用于從方法中傳出值,必須在方法體內(nèi)被賦值。 數(shù)組參數(shù):它提供了一個便利:能夠給方法傳遞任意個數(shù)的參數(shù)。,C#,17.索引器,索引器是什么? 它是類的成員; 它是一種靈活的訪問機(jī)制; 它實(shí)現(xiàn)了對類或結(jié)構(gòu)的私有的數(shù)組或者集合成員的訪問,使得類或結(jié)構(gòu)的對象可以像數(shù)組一樣使用。 它類似于屬性,也使用get和set訪問器,不
17、同之處在于它們的訪問器有參數(shù),且它的名字叫“this”。,C#,索引器和屬性的區(qū)別 1、定義方式不同:索引器要用this關(guān)鍵字,而屬性沒有。 2、訪問器不同:索引器的訪問器要有索引參數(shù),屬性沒有。 3、服務(wù)對象不同:索引器為私有集合類成員服務(wù),屬性為私有字段成員服務(wù)。,C#,C#中只允許單繼承,即一個派生類只能有一個基類。 C#中繼承是可傳遞的,如果C從B派生,B從A派生,那么C不僅繼承B的成員,還繼承A的成員。 C#中派生類可添加新成員,但不能刪除基類的成員。 C#中派生類不能繼承基類的構(gòu)造函數(shù)和析構(gòu)函數(shù),但能繼承基類的屬性。 C#中派生類可以和基類有同名成員,當(dāng)重名時,要在派生類的同名成員前加new關(guān)鍵字。 C#中派生類對象也是基類的對象,但基類對象卻不一定是派生類的對象。也就是說,派生類的實(shí)例可以賦值給基類對象,但反之則不可以。,C#中的繼承具有以下特點(diǎn):,18.繼承,C#,19.
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026福建三明市尤溪縣總醫(yī)院醫(yī)學(xué)人才校園(福建中醫(yī)藥大學(xué))專場公開招聘7人的通告考試備考題庫附答案
- 2026福建龍巖市第一醫(yī)院醫(yī)療類引進(jìn)生招聘16人參考題庫附答案
- 2026西藏自治區(qū)定向選調(diào)生招錄(70人)考試備考題庫附答案
- 公共交通乘客信息管理制度
- 2026黑龍江哈爾濱啟航勞務(wù)派遣有限公司派遣到哈工大計算學(xué)部社會計算與交互機(jī)器人研究中心招聘1人參考題庫附答案
- 北京市公安局輔警崗位招聘300人備考題庫附答案
- 景德鎮(zhèn)市公安局2025年下半年招聘警務(wù)輔助人員體能測評考試備考題庫附答案
- 特飛所2026屆校園招聘考試備考題庫附答案
- 鄰水縣2025年下半年公開考調(diào)公務(wù)員(21人)參考題庫附答案
- 2026陜西省面向中國政法大學(xué)招錄選調(diào)生考試備考題庫附答案
- 營地合作分成協(xié)議書
- GB/T 70.2-2025緊固件內(nèi)六角螺釘?shù)?部分:降低承載能力內(nèi)六角平圓頭螺釘
- 基于視頻圖像的大型戶外場景三維重建算法:挑戰(zhàn)、創(chuàng)新與實(shí)踐
- 物流管理畢業(yè)論文范文-物流管理畢業(yè)論文【可編輯全文】
- 2025年四川省高職單招模擬試題語數(shù)外全科及答案
- 2025年江蘇事業(yè)單位教師招聘體育學(xué)科專業(yè)知識考試試卷含答案
- 壁球裁判試題及答案
- 網(wǎng)絡(luò)銷售人員培訓(xùn)
- 設(shè)備租賃績效考核與激勵方案設(shè)計實(shí)施方法規(guī)定
- 合肥市軌道交通集團(tuán)有限公司招聘筆試題庫及答案2025
- 攝影攝像直播合同范本
評論
0/150
提交評論