




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第九章 類的定義與使用,類層次結(jié)構(gòu),類層次結(jié)構(gòu),利用繼承,可以非常方便的復(fù)用已有類的所有公有屬性和方法,并加入一些新的屬性和行為,產(chǎn)生出一個(gè)新的子類。 在子類的基礎(chǔ)上,我們還可以繼續(xù)進(jìn)行繼承,以產(chǎn)生出功能更加強(qiáng)大的類。 我們可以一直這樣繼承下去,產(chǎn)生出一個(gè)類似樹狀的層次結(jié)構(gòu),我們稱其為類層次結(jié)構(gòu)。,類層次結(jié)構(gòu),生活中有很多關(guān)系可以用類層次結(jié)構(gòu)來表示,如:,萬物皆對(duì)象,都有共同祖先,在 C# 中,所有對(duì)象都有一個(gè)類層次結(jié)構(gòu),包括最簡單的內(nèi)置類型,如int、float、string等,它們都有一個(gè)統(tǒng)一的基類,即System.Object(或object)。,System.Object類是一切類型的
2、基類,包括 C# 中的內(nèi)置類型和用戶自己創(chuàng)建的新類,用戶創(chuàng)建的新類將自動(dòng)的從Object類繼承。 這兩者是等價(jià)的:,所有對(duì)象的基類:Object,class MyClass : object / Class define. ,class MyClass / Class define. ,即然Object是一切類型的基類,所以可以用Object來存儲(chǔ)任意類型的數(shù)據(jù),看如下代碼:,所有對(duì)象的基類:Object,static void Main(string args) int theInteger = 10; float theFloat = 3.14; string theString = “T
3、he string”; object theObj = theInteger; theObj = theFloat; theObj = theString; Console.WriteLine(theObj); ,Object 中有些什么內(nèi)容?(Pg169 表9-2) Equals 兩個(gè)對(duì)象是否相等 ReferenceEqual 兩個(gè)對(duì)象是否為同一個(gè)對(duì)象 ToString 返回對(duì)象值的字符串表示 GetType 返回代表對(duì)象類型的對(duì)象,所有對(duì)象的基類:Object,當(dāng)我們使用=運(yùn)算符比較兩個(gè)對(duì)象是否相等時(shí),實(shí)際上就是調(diào)用了Object類的Equals方法來進(jìn)行比較的,以下代碼功能相同:,sta
4、tic void Main(string args) string theStr = Console.ReadLine(); if (theStr = “ok”) / Code in here. ,static void Main(string args) string theStr = Console.ReadLine(); if (theStr.Equals(“ok”) / Code in here. ,所有對(duì)象的基類:Object,為什么要這樣? 在Object類中Equals(object)是定義為Virtual的,可以進(jìn)行重寫,重新定義判斷對(duì)象是否相等的功能。 在 C# 中,由于所有
5、類型都是從Object類繼承的,所以,可以用Object類型的變量存儲(chǔ)任意類型的對(duì)象。這樣的話,就可以定義這樣的數(shù)組,讓它存放任意類型的數(shù)據(jù)。,所有對(duì)象的基類:Object,Ojbect數(shù)組示例:,static void Main(string args) object theObjes = new object; theObjs0 = 10; theObjs1 = 3.14; theObjs2 = “The String”; theObjs3 = SomeEnum.SomVal; theObjs4 = customClassObj; ,所有對(duì)象的基類:Object,所有對(duì)象的基類:Objec
6、t,思考:為什么可以Console.WriteLine(整型變量)? 可不可以實(shí)現(xiàn)Console.WriteLine(cow),ToString() 在Object類中的定義是Virtual的 ,通??梢栽谛露x的類中進(jìn)行重寫 默認(rèn)的ToString()實(shí)現(xiàn)了什么功能?,所有對(duì)象的基類:Object,Animal cow = new Cow(小牛貝貝); Console.WriteLine(cow.GetType() = typeof(Cow);,GetType()在Object類中的定義是:獲得對(duì)象的類型,返回:System.Type類型的結(jié)果,可以和typeof運(yùn)算符的計(jì)算結(jié)果進(jìn)行比較,用于判斷對(duì)象的類型,把類放在不同文件中,在VS2008中,可以把類寫在不同的文件中 一般情況下,我們遵循如下規(guī)則: 每個(gè)類放在一個(gè)文件中。 文件的名子就是類的名字。 在不同文件中的類可自由的使用,只要它們處于同一個(gè)名字空間下。,把類放在不同項(xiàng)目中,除了在項(xiàng)目中,把類放在不同的文件之外,還可以把它們放在完全不同的項(xiàng)目中,如果一個(gè)項(xiàng)目什么都不包含,只包含類(以及其它相關(guān)的類的定義,但沒有入口點(diǎn)),該項(xiàng)目就稱為類庫項(xiàng)目。 類庫項(xiàng)目編譯為.dll程序集,在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 兒童專注力提升營養(yǎng)益智計(jì)劃
- 茶葉加工廠實(shí)習(xí)總結(jié)范文
- 深化設(shè)計(jì)供應(yīng)鏈協(xié)調(diào)職責(zé)
- 保險(xiǎn)行業(yè)域名購買合同范文
- 部編版新人教版一年級(jí)語文上冊(cè)課程計(jì)劃
- 八年級(jí)上冊(cè)地理教學(xué)課件制作計(jì)劃
- 冷藏運(yùn)輸公司簡介范文
- 印刷材料運(yùn)輸、包裝及進(jìn)場(chǎng)質(zhì)量保證措施
- 2025學(xué)校紅十字會(huì)健康體檢組織計(jì)劃
- EPC工程總承包現(xiàn)場(chǎng)管理職責(zé)
- 合同到期不續(xù)簽領(lǐng)失業(yè)金(2025年版)
- 智能包裝設(shè)計(jì)知到課后答案智慧樹章節(jié)測(cè)試答案2025年春湖南工業(yè)大學(xué)
- TAOPA 0067-2024 手持式無人機(jī)偵測(cè)反制設(shè)備技術(shù)要求
- 學(xué)校校長聘任合同
- 酒店安全生產(chǎn)責(zé)任制清單
- 電商平臺(tái)的供應(yīng)鏈管理運(yùn)營分析
- 廣東省茂名市2023-2024學(xué)年高一下學(xué)期7月期末考試 語文 含解析
- 2025年貴州貴陽市城市發(fā)展投資集團(tuán)股份有限公司招聘筆試參考題庫附帶答案詳解
- 反應(yīng)釜設(shè)備知識(shí)培訓(xùn)課件
- EPC國際工程稅收爭(zhēng)議案例分析與風(fēng)險(xiǎn)防范策略
- 《危險(xiǎn)房屋鑒定標(biāo)準(zhǔn)JGJ125-2016》
評(píng)論
0/150
提交評(píng)論