版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
命名空間第六章2回顧第五章–
C#
中的高級OOP概念當(dāng)需要從基類的對象中調(diào)用派生的類方法時,虛擬函數(shù)十分有用。重寫和多態(tài)之間的區(qū)別是:在多態(tài)中,調(diào)用哪種方法的決定是在運(yùn)行時做出的。抽象基類是至少包含一個抽象成員(沒有實現(xiàn)的方法)的類。不能創(chuàng)建抽象基類的新實例。沒有實現(xiàn)的方法稱為“操作”。接口是純抽象基類。它只能包含抽象方法,而不包含方法實現(xiàn)。一個類可以實現(xiàn)多個接口。3目標(biāo)解釋命名空間創(chuàng)建自定義的命名空間討論命名空間命名的類型使用命名空間指令為命名空間創(chuàng)建別名了解.NET
基類庫4命名空間用于避免命名沖突專用于組織代碼當(dāng)代碼要在其他某個應(yīng)用程序中重用時,可以降低復(fù)雜性5聲明命名空間2-1與類的聲明過程相似語法–
namespaceNameSpaceName{ //此處列出該命名空間的全部類!}6聲明命名空間2-2classSamsungTelevision{...}classSamsungWalkMan{...}classSonyTelevision{...}classSonyWalkMan{...}namespaceSamsung{classTelevision{...}classWalkMan{...}}namespaceSony{classTelevision{...}classWalkman{...}}使用命名空間解決命名沖突更簡潔、更有條理、結(jié)構(gòu)更清晰7嵌套命名空間在一個命名空間內(nèi)聲明另一個命名空間...namespaceSony{namespaceTelevision{classT14inches{ ...}classT21inches{...}}}......namespaceSony.Television{classT14inches{ ...}classT21inches{...}}...第二種命名空間的方法在C#中可用,在C++中是不可用的8訪問修飾符和命名空間命名空間是隱式公共的命名空間不能為受保護(hù)的、私有的或內(nèi)部的...publicnamespaceSony//錯誤{ ...}privatenamespaceSamsung//錯誤{ ...}...在聲明命名空間時前面不應(yīng)加任何訪問修飾符9限定命名要在類所屬的命名空間內(nèi)使用該類,只需要指定該類的名稱要在類所屬的命名空間之外使用該類,必須使用該類的完全限定名來引用它
Namespace.classname10非限定命名namespaceSony{classTelevision{...}classWalkMan{...TelevisionMyEntertainment=newTelevision();...}}在類所屬的命名空間內(nèi)使用該類時,只需指定類名,這稱為“非限定名稱”
11限定命名-
示例usingSony;usingSamsung;usingSystem;namespaceSony{namespaceTelevision{classT14inches{publicT14inches(){Console.WriteLine("一臺14英寸的電視機(jī)");}}classT21inches{publicT21inches(){Console.WriteLine("一臺21英寸的電視機(jī)");}}}}namespaceSamsung{classTelevision{Sony.Television.T14inchesmyEntertainment=newSony.Television.T14inches();}}classTest{staticvoidMain(){Samsung.TelevisionmyEntertainment=newSamsung.Television();}}限定命名是在類名稱前加上點(diǎn)操作符和名稱空間12using命名空間指令使用限定命名會使代碼變長且容易混淆
使用using
命名空間指令可以使長且容易混淆的名稱變得簡短而且有意義...Sony.Television.T14inchesTelevision=newSony.Television.T14inches();...usingSony.Television;T14inchesTelevision=newT14inches();T21inchesTelevision2=newT21inches();13有效和無效的命名空間聲明14二義性名稱2-1usingSony;usingSamsung;classTest{staticvoidMain(){ TelevisionMyEntertainment=newTelevision();}}這會導(dǎo)致錯誤,因為Sony,Samsung命名空間都有Television類,程序中不知調(diào)用哪個命名空間的類,類名稱存在二義性。15二義性名稱2-2usingSony;usingSamsung;classTest{staticvoidMain(){ Samsung.TelevisionMyEntertainment=newSamsung.Television();}}在類名存在二義性的情況下,只能像代碼段中那樣使用限定的命名空間16using別名指令using別名指令提供了一種功能,可以從命名空間中只提取一個類,并將其放入作用域中usingT21inches=Sony.Televisions.T21inches;classTest{staticvoidMain(){ T21inchesM=newT21inches();}}using別名名稱=到命名空間或類的完全限定路徑17基類庫是預(yù)先編寫的代碼的集合,這些代碼可以很容易地合并到應(yīng)用程序中,并在應(yīng)用程序中加以使用基類庫可以被所有.NET
支持的語言共享根據(jù)其功能,BCL中的類被歸類到相應(yīng)的命名空間中18最常用的命名空間和類19命名空間System.Array3-1提供用于操縱數(shù)組的類和方法usingSystem;classTest{staticvoidMain(){int[]arrayToReverse={1,2,3,4,5,6,7};
Console.WriteLine("反轉(zhuǎn)前數(shù)組的內(nèi)容:\n"); displayArray(arrayToReverse);Array.Reverse(arrayToReverse);Console.WriteLine("\n\n反轉(zhuǎn)后數(shù)組的內(nèi)容:\n");displayArray(arrayToReverse);}
publicstaticvoiddisplayArray(ArraymyArray){foreach(intarrValueinmyArray){Console.WriteLine(arrValue);}}}20命名空間System.Array3-2上示例的輸出結(jié)果21命名空間System.Array3-3命名空間System.Array
其他方法22命名空間System.Threading3-1在程序中實現(xiàn)多線程同時運(yùn)行同一程序或程序不同部分的一個或多個實例23命名空間System.Threading3-2示例usingSystem;usingSystem.Threading;classTest{staticvoidMain(){ThreadnewThread=newThread(newThreadStart(ThreadToRun));newThread.Start();ThreadToRun();}staticvoidThreadToRun(){for(intcount=1;count<10;count++){ Console.WriteLine("線程數(shù)為{0}",count);}}}24命名空間System.Threading3-3線程同步usingSystem;usingSystem.Threading;classTest{staticvoidMain(){TestobjTest=newTest();ThreadnewThread=newThread(newThreadStart(objTest.threadToRun));newThread.Start();objTest.threadToRun();}voidthreadToRun(){lock(this)for(intcount=1;count<10;count++){ Console.WriteLine("線程數(shù)為{0}",count);}}}25命名空間System.IO3-1提供了大量用于文件/流的輸入/輸出的類示例-26命名空間System.IO3-2示例usingSystem;usingSystem.IO;classTest{staticvoidMain(string[]args){ Console.WriteLine(@"創(chuàng)建目錄C:\Sample..."); Directory.CreateDirectory(@"c:\Sample"); DateTimecreationDate=Directory.GetCreationTime(@"c:\Sample"); Console.WriteLine("目錄創(chuàng)建于:"+creationDate.ToString());}}27命名空間System.IO3-3其他重要的類28System.String類2-1提供了很多用于操縱字符串的方法示例-29System.String類2-2方法語法功能CopyStringCopy(stringStr);此方法使用與指定的字符串相同的值創(chuàng)建某個字符串的新實例。EndsWithboolEndsWith(stringValue);此方法檢查此實例的結(jié)尾是否與指定的字符串相匹配。PadLeftstringPadLeft(int);stringPadLeft(int,char);此方法使此實例中的字符右對齊,并用空格或指定的Unicode字符填充左端,以達(dá)到指定的總長度。SplitStringSplit(char[]);StringSplit(char[],int);此方法用于標(biāo)識此實例中的子字符串(這些子字符串由數(shù)組中指定的一個或多個字符分隔),然后將子字符串放到一個類型
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通運(yùn)輸行業(yè)二手房合同
- 道路橋梁施工合同備案說明
- 承包破樁工程合同范例
- 夜視儀租賃協(xié)議三篇
- 農(nóng)村土地集體收益分配合同三篇
- 貨款預(yù)存協(xié)議書模板
- 外調(diào)工作人員合同
- 退還合同保證金法條
- 工業(yè)機(jī)床煙霧凈化器技術(shù)協(xié)議書
- 集體合同備案交流材料工作總結(jié)
- 二手房購房協(xié)議書范本2024年
- 星星火炬代代相傳國旗下講話稿
- 電影短片《路怒》分鏡表
- 天津市河北區(qū)2022-2023學(xué)年七年級上學(xué)期期末地理試題
- 電動叉車充電間(區(qū)域)方面的標(biāo)準(zhǔn)要求
- 國際戰(zhàn)略環(huán)境概述
- 趣味可拓學(xué)智慧樹知到期末考試答案章節(jié)答案2024年廣東工業(yè)大學(xué)
- (高清版)JTGT 5190-2019 農(nóng)村公路養(yǎng)護(hù)技術(shù)規(guī)范
- 體育初中學(xué)生學(xué)情分析總結(jié)報告
- 幕墻工程安裝施工施工管理人員配備及分工
- 國開一體化平臺01588《西方行政學(xué)說》章節(jié)自測(1-23)試題及答案
評論
0/150
提交評論