




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、整理ppt1C# 課件課件第一章第一章第二章第二章第三章第三章第四章第四章第五章第五章第六章第六章第七章第七章第八章第八章第九章第九章第十章第十章ACCP 4.0補(bǔ)充補(bǔ)充整理ppt2.NET 平臺(tái)以及Visual Studio.NET IDE簡(jiǎn)介 第一章第一章整理ppt3目標(biāo) 討論計(jì)算、Internet 和應(yīng)用程序開(kāi)發(fā)的轉(zhuǎn)變 了解對(duì) .NET 的需求 解釋 CLR 和 IL 的角色 Visual Studio.NET IDE簡(jiǎn)介整理ppt4集中式計(jì)算啞終端主機(jī)集中式計(jì)算整理ppt5客戶(hù)端/服務(wù)器計(jì)算客戶(hù)端 - 服務(wù)器計(jì)算客戶(hù)端:智能終端服務(wù)器PC數(shù)據(jù)大的話網(wǎng)絡(luò)就不好了整理ppt6分布式計(jì)算2-
2、1分布式計(jì)算智能終端網(wǎng)絡(luò)網(wǎng)絡(luò)在本地分布式計(jì)算中,計(jì)算機(jī)通常位于 LAN 中整理ppt7分布式計(jì)算 2-2網(wǎng)絡(luò)網(wǎng)絡(luò)整理ppt8計(jì)算方案的轉(zhuǎn)變集中計(jì)算客戶(hù)端 - 服務(wù)器計(jì)算分布式計(jì)算Internet整理ppt9當(dāng)前的 InternetWeb 服務(wù)器InternetWeb 服務(wù)器Web 服務(wù)器今天的今天的 Web 站點(diǎn)是獨(dú)立的孤島站點(diǎn)是獨(dú)立的孤島 Web 提供數(shù)據(jù)的提供數(shù)據(jù)的 HTML“圖片圖片”,而不是實(shí)際的數(shù)據(jù)而不是實(shí)際的數(shù)據(jù) 瀏覽器:變相的只讀啞終端瀏覽器:變相的只讀啞終端 結(jié)構(gòu)與舊的分時(shí)模型相同結(jié)構(gòu)與舊的分時(shí)模型相同 要進(jìn)行個(gè)性化,需要在每個(gè)站點(diǎn)輸要進(jìn)行個(gè)性化,需要在每個(gè)站點(diǎn)輸入相同的個(gè)人信
3、息入相同的個(gè)人信息!整理ppt10目前存在的難題家庭辦公室聯(lián)機(jī)信息其他信息脫機(jī)信息電子郵件需要個(gè)人個(gè)人信息空間信息空間用戶(hù)用戶(hù)開(kāi)發(fā)人員開(kāi)發(fā)人員 生成、測(cè)試和部署站點(diǎn)的工具不足重用不好(c+寫(xiě)的vb再用) 站點(diǎn)通常較吸引人,但沒(méi)什么用處需要?jiǎng)?chuàng)建應(yīng)用程序并將其布署到多臺(tái)設(shè)備的工具整理ppt11Internet 的轉(zhuǎn)變Web 服務(wù)器Web 服務(wù)器Web 服務(wù)器Web 服務(wù)器Web 服務(wù)器Web 服務(wù)器組合體組合體作為孤島的作為孤島的 Web 站點(diǎn)站點(diǎn)站點(diǎn)、服務(wù)和設(shè)備彼此協(xié)作,共同提供豐富的用戶(hù)體驗(yàn)。整理ppt12應(yīng)用程序開(kāi)發(fā)的演變Internet任何人在任何位置都可以使用應(yīng)用程序軟件作為服務(wù)提供資源
4、豐富,基于應(yīng)用程序資源豐富,基于應(yīng)用程序來(lái)控制來(lái)控制 應(yīng)用程序集成在本地系統(tǒng)服務(wù)中推向市場(chǎng)時(shí)間短更高的開(kāi)發(fā)效率更高質(zhì)量軟件 應(yīng)用程序和網(wǎng)絡(luò)上所有應(yīng)用程序集成在一起,從而創(chuàng)造獨(dú)特的價(jià)值 因此,可以將焦點(diǎn)集中在創(chuàng)建獨(dú)特的商業(yè)價(jià)值,不必關(guān)注建造基礎(chǔ)設(shè)施 應(yīng)用程序(Web 服務(wù))在Internet/Intranet 中公開(kāi)其程序特點(diǎn) 開(kāi)發(fā)者通過(guò)調(diào)用 Web API 將 Web 服務(wù)集成到應(yīng)用程序中 Web 上的組件編程!整理ppt13.NET - 演變的結(jié)果2-1融合計(jì)算和通訊形成組合體,不再是孤島!分布式計(jì)算-本地進(jìn)行軟件成為服務(wù)應(yīng)用程序可由任何人在任何地方使用整理ppt14.NET -演變的結(jié)果
5、2-2融合計(jì)算和通訊形成組合體,而不是孤島!分布式計(jì)算本地進(jìn)行軟件成為服務(wù)應(yīng)用程序可以由任何人在任何地方使用整理ppt15整理ppt16.NET - 將 DC(個(gè)人計(jì)算) 向前推進(jìn)了一步2-1其他其他.NET 設(shè)備設(shè)備個(gè)人個(gè)人信息空間信息空間整理ppt17用戶(hù)數(shù)據(jù)存放在網(wǎng)絡(luò)上 - 可以隨時(shí)隨地進(jìn)行訪問(wèn)可以從任何 .NET 設(shè)備訪問(wèn)數(shù)據(jù)創(chuàng)建可以通過(guò)任何瀏覽器、任何設(shè)備訪問(wèn)的應(yīng)用程序.NET 應(yīng)用程序利用了 Internet 的功能.NET - 以 Internet 為中心的一種全新的平臺(tái).NET - 將 DC 向前推進(jìn)了一步2-2整理ppt18.NET 所支持的語(yǔ)言C#VB.NETEiffelC
6、OBOLSmallTalkADAPythonJScript.NETVC+整理ppt19代碼代碼被執(zhí)行被執(zhí)行C+VB編譯器編譯器編譯器編譯器可執(zhí)行可執(zhí)行代碼代碼可執(zhí)行可執(zhí)行代碼代碼RUNTIMERUNTIME語(yǔ)言特定的編譯器和運(yùn)行庫(kù)整理ppt20代碼代碼被執(zhí)行被執(zhí)行C#VB.net編譯器編譯器編譯器編譯器可執(zhí)行可執(zhí)行代碼代碼可執(zhí)行可執(zhí)行代碼代碼RUNTIMERUNTIMEIL+元數(shù)據(jù)CLRIL 和 CLR 的使用Common Language Runtime整理ppt21執(zhí)行 .NET 程序MSIL+元數(shù)據(jù)機(jī)器代碼代碼被執(zhí)行CLR第一次編譯第一次編譯第二次編譯第二次編譯.NET 程序被編譯兩次,
7、第一次編譯很慢,而第二次編譯較快!語(yǔ)言語(yǔ)言編譯器編譯器.NET 源代碼整理ppt22Microsoft 中間語(yǔ)言MSIL+元數(shù)據(jù)機(jī)器代碼代碼 被執(zhí)行CLRMSIL幫助語(yǔ)言實(shí)現(xiàn)互操作IL 不是字節(jié)代碼,但很接近字節(jié)代碼。因此,執(zhí)行應(yīng)用程序時(shí),IL 到機(jī)器碼的轉(zhuǎn)換速度非???!通過(guò) CLR將 MSIL 轉(zhuǎn)換為具體 CPU 的代碼CPU 無(wú)關(guān) 的指令集語(yǔ)言語(yǔ)言編譯器編譯器.NET 源代碼整理ppt23公共語(yǔ)言運(yùn)行庫(kù)CLR.NET 源代碼MSIL+元數(shù)據(jù)機(jī)器代碼代碼被執(zhí)行管理內(nèi)存易于設(shè)計(jì)組件和應(yīng)用程序,其對(duì)象可以跨語(yǔ)言互動(dòng)跨語(yǔ)言集成(特別是跨語(yǔ)言繼承)一次編譯,就可運(yùn)行在支持運(yùn)行庫(kù)的任何 CPU 和操作
8、系統(tǒng)上語(yǔ)言語(yǔ)言編譯器編譯器整理ppt24VS.NET IDE幫助系統(tǒng)演示整理ppt25VS.NET IDE設(shè)計(jì)器演示整理ppt26VS.NET IDE窗口管理演示整理ppt27總結(jié) .NET 是以 Internet 為中心的一種全新的平臺(tái) 通過(guò) .NET,可以將用戶(hù)數(shù)據(jù)存放在網(wǎng)絡(luò)上,并且隨時(shí)隨地通過(guò)與 .NET 兼容的任何設(shè)備訪問(wèn)這些數(shù)據(jù) NET 獨(dú)一無(wú)二的特征是可以提供多語(yǔ)言支持 以 .NET 語(yǔ)言編寫(xiě)的源代碼將被編譯兩次,第一次由語(yǔ)言特定的編譯器從源代碼編譯為 IL,第二次從 IL 編譯為機(jī)器碼整理ppt28Microsoft.NET 平臺(tái)組件 第二章整理ppt29回顧 .NET 是以 I
9、nternet 為中心的一種全新平臺(tái) 通過(guò) .NET,可以將用戶(hù)數(shù)據(jù)存放到網(wǎng)絡(luò)上,隨時(shí)隨地通過(guò)與 .NET 兼容的任何設(shè)備訪問(wèn)該數(shù)據(jù) .NET 獨(dú)一無(wú)二的特征是提供多語(yǔ)言支持 以 .NET 語(yǔ)言編寫(xiě)的源代碼被編譯兩次,一次由語(yǔ)言特定的編譯器從源代碼編譯成 IL,第二次從 IL 編譯成機(jī)器碼整理ppt30目標(biāo) 描述 Microsoft.NET 的核心組件 討論 .NET 框架并列出其組件 談?wù)?NET優(yōu)點(diǎn)整理ppt31Microsoft.NET 的組件MS.NET產(chǎn)品和服務(wù)產(chǎn)品和服務(wù)第三方第三方 .NET 服務(wù)服務(wù)MS.NET平臺(tái)平臺(tái)VS.NETMSN.NETOffice.NETbCentral
10、 serverfor .NETWindows.NET.Net 基礎(chǔ)結(jié)構(gòu)基礎(chǔ)結(jié)構(gòu)和工具和工具.Net 用戶(hù)體驗(yàn)用戶(hù)體驗(yàn).NET 生成生成塊服務(wù)塊服務(wù).NET 設(shè)備軟件設(shè)備軟件一些有機(jī)會(huì)生產(chǎn)構(gòu)建在一些有機(jī)會(huì)生產(chǎn)構(gòu)建在 .NET 平臺(tái)平臺(tái)上的服務(wù)的合作伙伴和開(kāi)發(fā)人員上的服務(wù)的合作伙伴和開(kāi)發(fā)人員整理ppt32Microsoft.Net 平臺(tái)的功能Internet協(xié)議協(xié)議XMLInternet協(xié)議XMLMicrosoft.NET構(gòu)建在 XML 和 Internet 協(xié)議的基礎(chǔ)之上用于開(kāi)發(fā)新 一代軟件的一套工具和服務(wù)集旨在使對(duì) Internet 上的任何資源組進(jìn)行集成/編排成為可能可以更快更容易地設(shè)計(jì)、實(shí)
11、現(xiàn)和部署協(xié)作式 Web 解決方案整理ppt33XMLInternet協(xié)議協(xié)議XMLMicrosoft.NET將實(shí)際數(shù)據(jù)與表現(xiàn)形式分開(kāi)構(gòu)建新一代 Internet 的關(guān)鍵;使得能夠?qū)π畔⑦M(jìn)行整理、編程和編輯提供了一種將數(shù)據(jù)發(fā)布到多種設(shè)備的方法使站點(diǎn)能夠進(jìn)行協(xié)作并提供能夠彼此交互的 Web 類(lèi)型豐富、性能高不用類(lèi)型轉(zhuǎn)換、穿透防火墻服務(wù)組合體整理ppt34SOAP 的功能Internet協(xié)議協(xié)議XMLMicrosoft.NETMicrosoft.NET 構(gòu)建在 HTTP 和 SOAP(簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議)等現(xiàn)有協(xié)議上SOAP 是基于 XML/HTTP 的協(xié)議SOAP 允許以獨(dú)立于平臺(tái)的方式訪問(wèn)服務(wù)、對(duì)
12、象和服務(wù)器SOAP 用于在分散的分布式環(huán)境中交換信息整理ppt35Microsoft.NET 平臺(tái)編排.NET框架框架.NETEnterprise Server.NET 生生成塊服務(wù)成塊服務(wù)Windows CE、Windows ME、Windows 2000 和和 Windows.NET整理ppt36編排Windows (CE、 ME、 2000 和和.NET).NET框架框架 .NETEnterprise Server.NET 生成生成塊服務(wù)塊服務(wù).NET 平臺(tái)構(gòu)建在 Windows 2000 服務(wù)器系列的可伸縮性、可伸縮性、可靠性、可靠性、安全性安全性和可管理性可管理性基礎(chǔ)之上選擇 Win
13、dows 2000 系列整理ppt37.NET框架框架編排.NETEnterprise ServerWindows (CE、 ME、2000 和和 .NET).NET 生成生成塊服務(wù)塊服務(wù)Web服務(wù)服務(wù)WebUI數(shù)據(jù)和數(shù)據(jù)和 XML基類(lèi)基類(lèi)公共語(yǔ)言運(yùn)行庫(kù)Microsoft.NET 框架的組件整理ppt38.NETEnterpriseServer編排.NET框架框架Windows (CE、 ME、2000 和和 .NET).NET 生成生成塊服務(wù)塊服務(wù) 通過(guò)服務(wù)器系列可以快速生成和管理一個(gè)集成的、支持 Web 的企業(yè)系統(tǒng) 可伸縮性設(shè)計(jì) 可以與最新的 Internet 和數(shù)據(jù)標(biāo)準(zhǔn)實(shí)現(xiàn)互操作安裝 S
14、QL Server 2000Internet Security & Acceleration (ISA) Server 2000Host Integration ServerExchange 2000 Server & Exchange 2000 Conferencing ServerCommerce Server 2000BizTalk Server 2000Application Server 20007 個(gè)核心個(gè)核心 .NET Enterprise Server.NET Enterprise Server整理ppt39.NET 生成生成塊服務(wù)塊服務(wù)編排.NET框架框架.N
15、ETEnterprise ServerWindows(CE、 ME、2000 和和 .NET)由 Microsoft 和其他 ASP (應(yīng)用程序提供)提供的商業(yè) Web 服務(wù)這些服務(wù)可以在其他應(yīng)用程序 / Web 服務(wù)中使用核心.NET 生成塊服務(wù);通知個(gè)性化日歷動(dòng)態(tài)提供.NET 生成塊服務(wù)整理ppt40業(yè)務(wù)進(jìn)程Web 服務(wù)組織 A組織 B 在組織內(nèi)部以及在組織之間 多個(gè)客戶(hù)、合作伙伴和服務(wù)提供商場(chǎng)所進(jìn)程和 Web 服務(wù)運(yùn)行在編排.NET框架框架.NETEnterprise Server.NET 生成生成塊服務(wù)塊服務(wù)Windows(CE、 ME、2000 和和 .NET)BizTalk Ser
16、ver 2000 為此編排服務(wù)提供這些工具。業(yè)務(wù)進(jìn)程整理ppt41.NET框架作用 提供一個(gè)一致的面向?qū)ο蟮木幊汰h(huán)境 提供一個(gè)將軟件部署和版本控制沖突最小化的代碼執(zhí)行環(huán)境 提供一個(gè)保證代碼安全執(zhí)行的代碼執(zhí)行環(huán)境 提供一個(gè)可消除腳本環(huán)境或解釋環(huán)境的性能問(wèn)題的代碼執(zhí)行環(huán)境 使開(kāi)發(fā)人員的經(jīng)驗(yàn)在面對(duì)類(lèi)型大不相同的應(yīng)用程序時(shí)保持一致 按照工業(yè)標(biāo)準(zhǔn)生成所有通信,以確?;?.NET Framework 的代碼可與任何其他代碼集成整理ppt42.NET Framework體系結(jié)構(gòu)W i n d o w s公 共 語(yǔ) 言 運(yùn) 行 庫(kù)基 類(lèi) 庫(kù)A D O . N E TA S P . N E T公 共 語(yǔ) 言
17、規(guī) 范C #Visual Studio.NETV BC + +. . .W i n d o w s 窗 體X M LC O M + 服 務(wù)整理ppt43.NET Framework 核心組件 公共語(yǔ)言運(yùn)行庫(kù) .NET Framework 類(lèi)庫(kù) 基類(lèi)庫(kù) 擴(kuò)展類(lèi)庫(kù)整理ppt44Microsoft. NET Framework 的體系結(jié)構(gòu)操作系統(tǒng)公共語(yǔ)言運(yùn)行時(shí) (CLR).Net Framework 類(lèi)庫(kù) (FCL)整理ppt45.NET Framework 的組件基本框架類(lèi).Net Framework.Net Framework 類(lèi)庫(kù)類(lèi)庫(kù)ASP.NETCLSCLRCTS整理ppt46公共語(yǔ)言運(yùn)行庫(kù)
18、 公共語(yǔ)言運(yùn)行庫(kù)是建立在操作系統(tǒng)之上 公共語(yǔ)言運(yùn)行庫(kù)作用 管理內(nèi)存 線程執(zhí)行 代碼執(zhí)行 代碼安全驗(yàn)證 編譯以及其他系統(tǒng)服務(wù)整理ppt47托管代碼定義 以運(yùn)行庫(kù)為目標(biāo)的代碼稱(chēng)為托管代碼 C+分成兩種,一種是托管C+,另外一種是非托管C+ C#是以運(yùn)行庫(kù)為目標(biāo)設(shè)計(jì)的,因此用C#編寫(xiě)的代碼基本上為托管代碼 不以運(yùn)行庫(kù)為目標(biāo)的代碼稱(chēng)為非托管代碼 .NET提供了與非托管代碼互操作的服務(wù),比如與COM互操作的Interop服務(wù)整理ppt48.NET Framework框架類(lèi)庫(kù) .NET Framework 類(lèi)庫(kù)提供一組豐富的接口以及抽象類(lèi)和具體(非抽象)類(lèi) 可以按原樣使用這些具體的類(lèi),或者在多數(shù)情況下從這
19、些類(lèi)派生自己的類(lèi) 若要使用接口的功能,既可以創(chuàng)建實(shí)現(xiàn)接口的類(lèi),也可以從某個(gè)實(shí)現(xiàn)接口的 .NET Framework 類(lèi)中派生類(lèi)整理ppt49公共語(yǔ)言規(guī)范(CLS) 公共語(yǔ)言規(guī)范 (CLS)是許多應(yīng)用程序所需的一套基本語(yǔ)言功能 CLS 規(guī)則定義了通用類(lèi)型系統(tǒng)的子集 CLS 通過(guò)定義一組開(kāi)發(fā)人員可以確信在多種語(yǔ)言中都可用的功能來(lái)增強(qiáng)和確保語(yǔ)言互用性 大多數(shù)由 .NET Framework 類(lèi)庫(kù)中的類(lèi)型定義的成員都符合 CLS整理ppt50使用VS.NET進(jìn)行.NET應(yīng)用開(kāi)發(fā) Windows應(yīng)用程序開(kāi)發(fā) ASP.NET應(yīng)用程序開(kāi)發(fā) 移動(dòng)設(shè)備應(yīng)用程序開(kāi)發(fā) Web Services 構(gòu)建.NET分布式系
20、統(tǒng)整理ppt51.NET特點(diǎn)總結(jié)4-1統(tǒng)一的API 傳統(tǒng)的編程模式 VB、VC、Delphi采用不同的編程模式和編程API Windows編程和Web編程采用不同的編程模式 .NET編程模式 將所有的API組織在框架類(lèi)庫(kù)中,VB.NET,C#,VC.NET可以調(diào)用相同的API實(shí)現(xiàn)相同功能 ASP.NET Web窗體編程模式類(lèi)似于VB的Web窗體設(shè)計(jì)器整理ppt52.NET特點(diǎn)總結(jié)4-2自動(dòng)內(nèi)存管理 傳統(tǒng)內(nèi)存管理模式 開(kāi)發(fā)者可以操縱內(nèi)存,為內(nèi)存管理提高了靈活性,同時(shí)也降低了安全性、穩(wěn)定性 COM中采用引用計(jì)數(shù)的方法實(shí)現(xiàn)內(nèi)存管理,但是容易出現(xiàn)循環(huán)引用的問(wèn)題 .NET內(nèi)存管理模式 由.NET Fra
21、mework CLR實(shí)現(xiàn)內(nèi)存分配 由.NET Framework CLR實(shí)現(xiàn)垃圾收集和垃圾回收整理ppt53.NET特點(diǎn)總結(jié)4-3安全類(lèi)型系統(tǒng) 在.NET框架中不會(huì)有不安全的類(lèi)型表 不會(huì)產(chǎn)生某一個(gè)類(lèi)型的指針指向另外一個(gè)類(lèi)型的情況 不可能有無(wú)初始化的變量,不可能索引超出邊界的數(shù)組等等整理ppt54.NET特點(diǎn)總結(jié)4-4 安全意外處理 零安裝(自我描述) 更好的版本控制 多語(yǔ)言支持 與COM的互操作性 XML Web Service整理ppt55總結(jié) .NET 是以 Internet 為中心的一種應(yīng)用程序開(kāi)發(fā)平臺(tái)。 此平臺(tái)的主要優(yōu)點(diǎn)在于用戶(hù)可以隨時(shí)隨地使用與 .NET 兼容的設(shè)備訪問(wèn)所有重要數(shù)據(jù)。
22、 Microsoft.NET 主要由三個(gè)組件構(gòu)成,即 Microsoft.NET 產(chǎn)品和服務(wù)、.NET 平臺(tái)本身以及第三方 .NET 服務(wù)。 .NET 平臺(tái)構(gòu)成了獨(dú)立于語(yǔ)言,可以從各種.NET 兼容設(shè)備上運(yùn)行的應(yīng)用程序的基礎(chǔ)。 .NET 平臺(tái)基于兩種核心技術(shù),即 XML 和 Internet 協(xié)議套件。整理ppt56C# 基礎(chǔ)知識(shí)第三章第三章整理ppt57回顧 第二章 - - Microsoft .NET 的組件 .NET 是以是以 Internet 為中心的一種應(yīng)用程序開(kāi)發(fā)平臺(tái)為中心的一種應(yīng)用程序開(kāi)發(fā)平臺(tái)。 此平臺(tái)的主要優(yōu)點(diǎn)在于用戶(hù)可以隨時(shí)隨地使用與此平臺(tái)的主要優(yōu)點(diǎn)在于用戶(hù)可以隨時(shí)隨地使用與
23、 .NET 兼容兼容的設(shè)備訪問(wèn)所有的重要數(shù)據(jù)的設(shè)備訪問(wèn)所有的重要數(shù)據(jù)。 Microsoft.NET 主要由三個(gè)組件組成主要由三個(gè)組件組成,即即 Microsoft.NET 產(chǎn)產(chǎn)品和服務(wù)品和服務(wù)、.NET 平臺(tái)本身以及第三方平臺(tái)本身以及第三方 .NET 服務(wù)服務(wù)。 .NET 平臺(tái)構(gòu)成了獨(dú)立于語(yǔ)言平臺(tái)構(gòu)成了獨(dú)立于語(yǔ)言,可以從各種可以從各種 .NET 兼容設(shè)備兼容設(shè)備上運(yùn)行的應(yīng)用程序的基礎(chǔ)。上運(yùn)行的應(yīng)用程序的基礎(chǔ)。 .NET 平臺(tái)基于兩種核心技術(shù)平臺(tái)基于兩種核心技術(shù),即即 XML 和和 Internet 協(xié)議套協(xié)議套件。件。整理ppt58目標(biāo) 討論 C# 中的類(lèi) 討論C#程序中的流程控制 闡釋 C#
24、 中的基本數(shù)據(jù)類(lèi)型 討論 裝箱和取消裝箱的概念 討論結(jié)構(gòu) 討論枚舉類(lèi)型 使用C#編寫(xiě)簡(jiǎn)單程序整理ppt59Microsoft .NET開(kāi)發(fā) Windows 應(yīng)用程序和 Web 應(yīng)用程序的新平臺(tái)支持超過(guò) 20 種語(yǔ)言為 Windows 編程的可用功能帶來(lái)了變革整理ppt60C# 簡(jiǎn)介充分利用了 .NET 平臺(tái)C#編譯器是.NET 家族中最高效的編譯器C+ 的最新?lián)Q代產(chǎn)品通過(guò)強(qiáng)制腳本類(lèi)型檢查,提高了開(kāi)發(fā)人員的工作效率并增強(qiáng)了安全性允許有限制地使用本機(jī)指針整理ppt61C# 程序流一個(gè)簡(jiǎn)單的 C# 程序 -本程序?qū)@示消息本程序?qū)@示消息: :這是這是HelloWorld程序程序整理ppt62C#
25、編程構(gòu)造3-1C# 中的變量以下列方式進(jìn)行聲明: AccessModifier DataType VariablePublicPrivateProtectedintstringfloat整理ppt63C#編程構(gòu)造3-2 如果需要使用任何關(guān)鍵字作為變量名稱(chēng),必須為該變量名稱(chēng)添加前綴 本程序的輸出消息本程序的輸出消息: :string是一個(gè)關(guān)鍵字但在本例用作一個(gè)變是一個(gè)關(guān)鍵字但在本例用作一個(gè)變量名量名整理ppt64C# 編程構(gòu)造3-3using System;class Test static void Main() int array1 = new int5; Console.WriteLine
26、(10 * array12); 本示例本示例的輸出的輸出結(jié)果是結(jié)果是0整理ppt65默認(rèn)值 常用數(shù)據(jù)類(lèi)型的默認(rèn)值:整理ppt66C# 中的輸入/輸出3-1使用 System 命名空間中的 Console 類(lèi)的方法最常用的方法 Console.ReadLine( ) Console.WriteLine( )整理ppt67C# 中的輸入/輸出 3-2using System;class TestDefaultValues static void Main() int number, result; number=5; result=100 * number; Console.WriteLine(“
27、當(dāng)當(dāng) 100 與數(shù)字與數(shù)字 0 相乘時(shí),結(jié)果為相乘時(shí),結(jié)果為 1 , number, result); 突出顯示的代碼行起著占位符的作用,即指定變量結(jié)果突出顯示的代碼行起著占位符的作用,即指定變量結(jié)果值的顯示位置值的顯示位置。 index,alignment:formatString)可選整數(shù),指示包含格式化值的區(qū)域的最小寬度。如果格式化值的長(zhǎng)度小于對(duì)齊,則用空格填充該區(qū)域。如果對(duì)齊為負(fù),則格式化的值將在該區(qū)域中左對(duì)齊;如果為正,則格式化的值將右對(duì)齊。如果沒(méi)有指定對(duì)齊,則該區(qū)域的長(zhǎng)度為格式化值的長(zhǎng)度。如果指定對(duì)齊,則需用逗號(hào)分隔。G常規(guī),E 或 F 中較短的F浮點(diǎn)數(shù),常規(guī)表示法E用 E 表示法
28、表示的浮點(diǎn)數(shù)(其中,E 代表 10 的次冪) N帶有分隔符的浮點(diǎn)數(shù)(在美國(guó)為逗號(hào))C貨幣,帶有貨幣符號(hào)和分隔符(在美國(guó)為逗號(hào))D十進(jìn)制數(shù),僅用于整型X十六進(jìn)制數(shù),僅用于整型整理ppt68C# 中的輸入/輸出 3-3示例接受了一行的用戶(hù)輸入示例接受了一行的用戶(hù)輸入, ,并將其回顯為輸出并將其回顯為輸出整理ppt69if 結(jié)構(gòu)2-1用于執(zhí)行條件分支語(yǔ)法 表達(dá)式需要始終為 Boolean 類(lèi)型的表達(dá)式整理ppt70If結(jié)構(gòu)2-2上面的代碼段將顯示錯(cuò)誤消息上面的代碼段將顯示錯(cuò)誤消息 錯(cuò)誤錯(cuò)誤 CS0029:無(wú)法將類(lèi)型無(wú)法將類(lèi)型“string”隱式轉(zhuǎn)換為類(lèi)型隱式轉(zhuǎn)換為類(lèi)型“bool”整理ppt71swi
29、tch 語(yǔ)句2-1 語(yǔ)法 -每個(gè)每個(gè)case分支必須有一個(gè)分支必須有一個(gè)break語(yǔ)句語(yǔ)句整理ppt72switch 語(yǔ)句2-2Switch結(jié)構(gòu)結(jié)構(gòu)可以充當(dāng)多個(gè)可以充當(dāng)多個(gè)if語(yǔ)句語(yǔ)句整理ppt73循環(huán)結(jié)構(gòu)當(dāng)特定條件為 true 時(shí)執(zhí)行一組特定的指令,或?qū)⑻囟ㄖ噶罱M執(zhí)行一定次數(shù)循環(huán)結(jié)構(gòu)的類(lèi)型 - while 循環(huán)循環(huán) do 循環(huán)循環(huán) for 循環(huán)循環(huán) foreach 循環(huán)循環(huán)整理ppt74while 循環(huán)while 循環(huán)執(zhí)行一組語(yǔ)句,直至指定條件為 falsebreak 語(yǔ)句 - 隨時(shí)跳出循環(huán)continue 語(yǔ)句 - 跳過(guò)當(dāng)前循環(huán),并開(kāi)始下一循環(huán)整理ppt75do 循環(huán)語(yǔ)法 -在條件檢查之前
30、在條件檢查之前, ,循環(huán)體中的語(yǔ)句組至少執(zhí)行一次循環(huán)體中的語(yǔ)句組至少執(zhí)行一次整理ppt76for 循環(huán)語(yǔ)法 -int sum=1;for(count=0;count10;count+) sum+;forfor語(yǔ)句循環(huán)語(yǔ)句循環(huán)1010次次,sum的的最終結(jié)果是的的最終結(jié)果是1010。整理ppt77foreach 循環(huán)2-1foreach 循環(huán)用于通過(guò)集合或數(shù)組來(lái)循環(huán)語(yǔ)法 -整理ppt78foreach 循環(huán) 2-2using System;public class ForEachLoop static void Main(String args) int index; String array1
31、=new String3; for(index=0;index3;index+) array1index=argsindex; foreach(String strName in array1) Console.WriteLine(strName); 整理ppt79C# 中的構(gòu)造函數(shù)C# 中的構(gòu)造函數(shù)與類(lèi)同名class MyConstructorExpublic MyConstructorEx()/MyConstructorEx 構(gòu)造函數(shù)整理ppt80C# 中的析構(gòu)函數(shù) C# 中的析構(gòu)函數(shù)與類(lèi)也同名class MyConstructorEx public MyConstructorEx() /
32、MyConstructorEx 構(gòu)造函數(shù) public MyConstructorEx() /MyConstructorEx 析構(gòu)函數(shù) 整理ppt81C# 的基本類(lèi)型2-1C# 的數(shù)據(jù)類(lèi)型分為兩種基本類(lèi)型 值類(lèi)型值類(lèi)型int、char 和結(jié)構(gòu)和結(jié)構(gòu) 引用類(lèi)型引用類(lèi)型類(lèi)、接口、數(shù)組和字符串類(lèi)、接口、數(shù)組和字符串整理ppt82C# 的基本類(lèi)型2-2 值類(lèi)型 僅在內(nèi)存中保存值 存儲(chǔ)與堆棧中 引用類(lèi)型 將對(duì)象的地址存儲(chǔ)與堆中 null表示沒(méi)有應(yīng)用任何對(duì)象 整理ppt83值類(lèi)型variableVal是值類(lèi)型是值類(lèi)型輸出結(jié)果為輸出結(jié)果為100100,而不而不是是200200整理ppt84引用類(lèi)型using
33、 System;class DataTypeTest public int variableVal;class DataTypeTestRef static void Main() DataTypeTest dataTest = new DataTypeTest(); dataTest.variableVal = 100; funcDataTypeTest(dataTest); Console.WriteLine(dataTest.variableVal); static void funcDataTypeTest(DataTypeTest dataTest) int tempVar=10;
34、dataTest.variableVal = tempVar*20; 整理ppt85值類(lèi)型和引用類(lèi)型值引用變量保存實(shí)際值引用存儲(chǔ)位置內(nèi)聯(lián)(堆棧)堆默認(rèn)值零Null傳遞給函數(shù)的參數(shù)值的副本引用的副本整理ppt86裝箱和取消裝箱裝箱是從值類(lèi)型到引用類(lèi)型的轉(zhuǎn)換取消裝箱是從引用類(lèi)型到值類(lèi)型的轉(zhuǎn)換示例整理ppt87C# 中的數(shù)據(jù)類(lèi)型處理C# 提供了一種“統(tǒng)一類(lèi)型系統(tǒng)” C# 中所有數(shù)據(jù)類(lèi)型都是從一個(gè)類(lèi)即 object 類(lèi)派生而來(lái)的整理ppt88靜態(tài)成員成員不與任何特定的對(duì)象或類(lèi)關(guān)聯(lián)僅可以有一個(gè)實(shí)例static int staticMem;static int instanceCount()/instan
35、ceCount 實(shí)現(xiàn)整理ppt89數(shù)組一組具有類(lèi)似數(shù)據(jù)類(lèi)型的值屬于引用類(lèi)型,因此存儲(chǔ)于堆中C# 中的數(shù)組聲明語(yǔ)法如下 DataTypenumber of elements ArrayName;int6 array1;整理ppt90結(jié)構(gòu)結(jié)構(gòu)屬于值類(lèi)型可以有方法可以擁有構(gòu)造函數(shù)不能實(shí)現(xiàn)繼承struct structEx public int structDataMember; public void structEx() /構(gòu)造函數(shù)實(shí)現(xiàn) public void structMethod1() /structMethod1 實(shí)現(xiàn) 整理ppt91枚舉類(lèi)型2-1public class Holiday
36、public enum WeekDays Monday,Tuesday,Wednesday,Thursday,Friday public void GetWeekDays(String EmpName, WeekDays DayOff) /處理處理 WeekDays static void Main() Holiday myHoliday = new Holiday(); myHoliday.GetWeekDays(Richie, Holiday.WeekDays.Wednesday); 程序中聲明了僅接受程序中聲明了僅接受5 5個(gè)值的枚舉類(lèi)型個(gè)值的枚舉類(lèi)型WeekDays整理ppt92枚舉類(lèi)
37、型2-2C# 中的枚舉數(shù)都有與值相關(guān)聯(lián)的數(shù)字默認(rèn)情況下,枚舉數(shù)的第一個(gè)元素被指定為 0 值,后續(xù)的各個(gè)枚舉數(shù)元素的值依次遞增默認(rèn)值可以在初始化階段中重寫(xiě)整理ppt93編譯和運(yùn)行步驟 1 - 在記事本中輸入代碼步驟 2 - 使用 .cs 擴(kuò)展名保存文件步驟 3 - 切換至 DOS 提示符,再輸入以下命令要運(yùn)行 C# 文件,可以鍵入不帶擴(kuò)展名的文件名csc csc First.cs 整理ppt94總結(jié)在 C# 中,數(shù)據(jù)類(lèi)型分為兩種基本類(lèi)型,即值類(lèi)型和引用類(lèi)型。裝箱是指從值類(lèi)型到引用類(lèi)型的轉(zhuǎn)換,而取消裝箱是指從引用類(lèi)型到值類(lèi)型的轉(zhuǎn)換。C# 中的結(jié)構(gòu)內(nèi)部可以定義方法,也可以擁有構(gòu)造函數(shù)。枚舉類(lèi)型是聲明
38、一組命名常數(shù)的獨(dú)特類(lèi)型。整理ppt95在 C# 中實(shí)現(xiàn) OOP 概念第四章第四章整理ppt96作業(yè)點(diǎn)評(píng) 變量沒(méi)初始化 結(jié)構(gòu)的構(gòu)造函數(shù)沒(méi)有指定參數(shù) String string 引用(字符串)String是固定不變的,在進(jìn)行字符串連接的時(shí)候是新建一個(gè)字符串,進(jìn)行連接后,最后賦值,如果對(duì)String賦值多次,就會(huì)在內(nèi)存中保存多個(gè)這個(gè)對(duì)象的副本,浪費(fèi)系統(tǒng)資源 Csc 靜態(tài) 其它例子整理ppt97回顧 第三章C#基礎(chǔ) C#變量的聲明方式如下變量的聲明方式如下: AccessModifier DataType VariableName; 在在C#中,數(shù)據(jù)類(lèi)型分為兩種基本類(lèi)型,即中,數(shù)據(jù)類(lèi)型分為兩種基本類(lèi)型
39、,即值類(lèi)型和引用類(lèi)型。值類(lèi)型和引用類(lèi)型。 裝箱是指從值類(lèi)型到引用類(lèi)型的轉(zhuǎn)換,而裝箱是指從值類(lèi)型到引用類(lèi)型的轉(zhuǎn)換,而取消裝箱是指從引用類(lèi)型到值類(lèi)型的轉(zhuǎn)換。取消裝箱是指從引用類(lèi)型到值類(lèi)型的轉(zhuǎn)換。 C#的結(jié)構(gòu)內(nèi)部可以定義方法,也可以擁有的結(jié)構(gòu)內(nèi)部可以定義方法,也可以擁有構(gòu)造函數(shù)。構(gòu)造函數(shù)。整理ppt98目標(biāo) 在C#中使用構(gòu)造函數(shù) 在C#中使用析構(gòu)函數(shù) 解釋垃圾回收器的工作原理 討論方法重載 討論操作符重載 在C#中使用繼承 討論C#中的重寫(xiě)整理ppt99C# 中的構(gòu)造函數(shù)3-1是類(lèi)中的特殊類(lèi)型的方法是每次創(chuàng)建對(duì)象時(shí)要調(diào)用的函數(shù)通常用于初始化與類(lèi)同名不返回值整理ppt100構(gòu)造函數(shù)3-2using S
40、ystem;public class DaysInYear private int days; public DaysInYear() days = 365; static void Main(String args) DaysInYear newDaysInYear=new DaysInYear(); Console.WriteLine(newDaysInYear.days); 無(wú)構(gòu)造函數(shù)輸出無(wú)構(gòu)造函數(shù)輸出的結(jié)果是的結(jié)果是0 0有構(gòu)造函數(shù)輸出有構(gòu)造函數(shù)輸出結(jié)果是結(jié)果是365365整理ppt101帶參數(shù)的構(gòu)造函數(shù)3-3public class DaysInYear private int da
41、ys; public DaysInYear() days = 365; public DaysInYear(int day) days = day; public DaysInYear(String dayOne) days =Convert.ToInt32(dayOne); public void setDay(int newDays) days = newDays; 傳遞不同個(gè)數(shù)的參數(shù)傳遞不同個(gè)數(shù)的參數(shù) 傳遞個(gè)數(shù)相同但類(lèi)型傳遞個(gè)數(shù)相同但類(lèi)型不同的參數(shù)不同的參數(shù)整理ppt102C# 中的析構(gòu)函數(shù)由C#中的垃圾回收器調(diào)用垃圾回收器通過(guò)銷(xiāo)毀不再需要或不再被引用的對(duì)象來(lái)釋放內(nèi)存語(yǔ)法 DaysInY
42、ear()/ 析構(gòu)函數(shù)實(shí)現(xiàn)析構(gòu)函數(shù)實(shí)現(xiàn)不能對(duì)結(jié)構(gòu)使用析構(gòu)函數(shù)。只能對(duì)類(lèi)使用析構(gòu)函數(shù)。一個(gè)類(lèi)只能有一個(gè)析構(gòu)函數(shù)。無(wú)法繼承或重載析構(gòu)函數(shù)。無(wú)法調(diào)用析構(gòu)函數(shù)。它們是被自動(dòng)調(diào)用的。析構(gòu)函數(shù)既沒(méi)有修飾符,也沒(méi)有參數(shù)。整理ppt103垃圾回收器3-1垃圾回收器的工作原理 如果為定義析構(gòu)函數(shù)的對(duì)象分配了內(nèi)存,運(yùn)行如果為定義析構(gòu)函數(shù)的對(duì)象分配了內(nèi)存,運(yùn)行庫(kù)將庫(kù)將把該對(duì)象添加到需要銷(xiāo)毀的對(duì)象的列表中。把該對(duì)象添加到需要銷(xiāo)毀的對(duì)象的列表中。 垃圾回收垃圾回收器定期檢查器定期檢查有沒(méi)有不再被引用的對(duì)象有沒(méi)有不再被引用的對(duì)象 如果如果找到了找到了其名稱(chēng)沒(méi)有列在銷(xiāo)毀器列表中的對(duì)其名稱(chēng)沒(méi)有列在銷(xiāo)毀器列表中的對(duì)象,就立即清
43、除該對(duì)象。象,就立即清除該對(duì)象。 完成垃圾回收后完成垃圾回收后,將調(diào)用銷(xiāo)毀器線程,該線程調(diào)將調(diào)用銷(xiāo)毀器線程,該線程調(diào)用有標(biāo)記為用有標(biāo)記為“準(zhǔn)備銷(xiāo)毀準(zhǔn)備銷(xiāo)毀”的對(duì)象的銷(xiāo)毀方法的對(duì)象的銷(xiāo)毀方法(析構(gòu)函數(shù))。(析構(gòu)函數(shù))。整理ppt104垃圾回收器3-2對(duì)象銷(xiāo)毀過(guò)程發(fā)生后,就將該對(duì)象從需要銷(xiāo)毀的對(duì)象列表中刪除。因?yàn)樵搶?duì)象沒(méi)有被引用,也沒(méi)有列在銷(xiāo)毀器列表中,所以下次進(jìn)行垃圾回收時(shí)就會(huì)將它清除。整理ppt105垃圾回收器3-3有析構(gòu)函數(shù)的對(duì)象占用的資源較多,因?yàn)榧词共辉傩枰鼈?,它們?nèi)詴?huì)在內(nèi)存中駐留較長(zhǎng)時(shí)間。銷(xiāo)毀過(guò)程作為獨(dú)立的線程執(zhí)行,該線程會(huì)占用大量資源。GC.Collect ()強(qiáng)制進(jìn)行垃圾回收。強(qiáng)
44、制進(jìn)行垃圾回收。 整理ppt106方法重載重載方法有兩種方式 指指定不同個(gè)數(shù)的參數(shù)定不同個(gè)數(shù)的參數(shù) 指定指定不同類(lèi)型的參數(shù)不同類(lèi)型的參數(shù)整理ppt107不同參數(shù)個(gè)數(shù)的方法重載using System;public class Area private int areaVal; public void AreaCal(int radius) areaVal = (22/7)* radius*radius; public void AreaCal(int length, int breadth) areaVal = length*breadth; public void AreaCal(int l
45、ength, int breadth, int height) areaVal = length*breadth*height; 參數(shù)的類(lèi)型相同參數(shù)的類(lèi)型相同參數(shù)個(gè)數(shù)不同參數(shù)個(gè)數(shù)不同整理ppt108不同參數(shù)類(lèi)型的方法重載. public void AreaCal(int radius) areaVal = (22/7)* radius*radius;public void AreaCal(string shapeName) Console.WriteLine(0 的面積沒(méi)有計(jì)算的面積沒(méi)有計(jì)算,shapeName);. 方法中參數(shù)個(gè)數(shù)相等方法中參數(shù)個(gè)數(shù)相等, ,參數(shù)類(lèi)型不同參數(shù)類(lèi)型不同整理ppt
46、109操作符重載3-1 重載操作符意味著使該操作符具有不同的行為 使用操作符可以使方程式簡(jiǎn)單易懂/ 第 1 行int result = Decimal.Add(54, 200);/ 第 2 行int result2 = 54 + 200;上述兩行執(zhí)行同樣的操作上述兩行執(zhí)行同樣的操作, ,但操作符更簡(jiǎn)便易懂但操作符更簡(jiǎn)便易懂整理ppt110操作符重載3-2以下是可以重載的操作符列表public static public static result-typeresult-type operator operator unary-operatorunary-operator ( ( op-type
47、op-type operand ) ) public static public static result-typeresult-type operator operator binary-binary-operatoroperator ( ( op-type operand, , op-type2 operand2 ) ) 整理ppt111操作符重載3-3using System;public struct Distance public Distance(int lon, int mag) this.longitude = lon;this.latitude = mag; int lon
48、gitude, latitude; public static Distance operator - (Distance first, Distance second) return new Distance(first.longitude - second.longitude, first.latitude - second.latitude); / 主函數(shù)主函數(shù) public static void Main() Distance start = new Distance();Distance newDistance = new Distance();Distance finish =
49、new Distance();start.longitude = 12;start.latitude = 10;finish.longitude = 2;finish.latitude = 1;newDistance = start - finish;Console.WriteLine(終點(diǎn)的位置在起點(diǎn)以東 0 度,以北 1 度。, newDistance.longitude,newDistance.latitude); 整理ppt112C# 中的繼承2-1將新類(lèi)作為另一個(gè)類(lèi)的后代來(lái)聲明和使用避免重復(fù)編寫(xiě)代碼提供代碼重用的巨大好處整理ppt113C# 中的繼承2-2有兩種繼承類(lèi)型 單一繼承單一
50、繼承 多重繼承多重繼承 C#只支持單一繼承,不支持多重繼承只支持單一繼承,不支持多重繼承整理ppt114單一繼承using System;class CharacterVal public int setCharVal(char ch) char charVal=ch; Console.WriteLine(輸入的字符是輸入的字符是:0,charVal); return(0); class StringVal : CharacterVal public string strVal; public int setStrVal(string str) strVal=str; Console.Writ
51、eLine(輸入的字符串是輸入的字符串是:0,strVal); return(0); class Inheritance static void Main() StringVal object1 = new StringVal(); Object1.setCharVal(j); Object1.setStrVal(enjoy); 類(lèi)類(lèi)StringVal繼承繼承CharacterVal因此可以直接引用方法因此可以直接引用方法setCharVal整理ppt115密封類(lèi) 如果不需要類(lèi)被繼承則應(yīng)當(dāng)密封該類(lèi)sealed class classOne / 類(lèi)的實(shí)現(xiàn)通過(guò)指定通過(guò)指定sealed關(guān)鍵字,可以密
52、封任何類(lèi)關(guān)鍵字,可以密封任何類(lèi)整理ppt116方法重寫(xiě)2-1重寫(xiě)基類(lèi)中現(xiàn)有方法的步驟: 在繼承類(lèi)中聲明同名的新方法 在該方法名前附加new關(guān)鍵字 整理ppt117方法重寫(xiě)2-2using System;class IntAddition public void add() int firstNum=1; int secondNum=2; Console.WriteLine(兩數(shù)之和是:兩數(shù)之和是:0, firstNum+secondNum); class StringAddition : IntAddition new public void add() string firstStr=a;
53、string secondStr=b; Console.WriteLine(兩字符串之和是兩字符串之和是:0, firstStr+secondStr); class MethodOverride public static void Main() StringAddition objStringAddition = new StringAddition(); objStringAddition.add(); 在在StringAddition類(lèi)中基類(lèi)中類(lèi)中基類(lèi)中add方法被重載方法被重載整理ppt118總結(jié)2-1 帶參數(shù)的構(gòu)造函數(shù)是接受參數(shù)的構(gòu)造函數(shù) 在 C# 中,析構(gòu)函數(shù)由垃圾回收器調(diào)用。 在
54、 C#中,有兩種方式來(lái)重載方法 指定不同個(gè)數(shù)的參數(shù) 指定不同類(lèi)型的參數(shù) C#允許重載操作符 整理ppt119總結(jié)2-2 重載操作符意味著使操作符(例如,加法操作符 +)在應(yīng)用于結(jié)構(gòu)或類(lèi)的某些對(duì)象時(shí)具有不同的行為 C# 不支持多重繼承 要重寫(xiě)基類(lèi)的現(xiàn)有方法,需要在繼承類(lèi)中聲明一個(gè)同名的新方法,并在方法名稱(chēng)前附加 new 關(guān)鍵字整理ppt120C# 中的高級(jí) OOP 概念第五章第五章整理ppt121回顧 第四章 - 實(shí)現(xiàn)C中的高級(jí)OOP概念 帶帶參數(shù)的構(gòu)造函數(shù)是指接受參數(shù)的構(gòu)造函參數(shù)的構(gòu)造函數(shù)是指接受參數(shù)的構(gòu)造函數(shù)。數(shù)。 在 C#中,析構(gòu)函數(shù)由垃圾回收器調(diào)用。中,析構(gòu)函數(shù)由垃圾回收器調(diào)用。 在在C
55、#中允許方法重載中允許方法重載 在在C#中允許操作符重載中允許操作符重載 C#不支持多重繼續(xù)不支持多重繼續(xù) 要要重寫(xiě)基類(lèi)的現(xiàn)有方法,需要在繼承類(lèi)中重寫(xiě)基類(lèi)的現(xiàn)有方法,需要在繼承類(lèi)中聲明一個(gè)同名的新方法,并在方法名稱(chēng)前聲明一個(gè)同名的新方法,并在方法名稱(chēng)前附加附加 new關(guān)鍵字關(guān)鍵字 整理ppt122目標(biāo) 討論多態(tài)性 使用虛函數(shù) 討論抽象基類(lèi) 討論接口的概念 使用接口整理ppt123C# 中的多態(tài)性6-1 多態(tài)性和虛函數(shù)關(guān)系非常密切 多態(tài)性允許在運(yùn)行時(shí)實(shí)現(xiàn)派生類(lèi)的方法 需要從基類(lèi)的對(duì)象調(diào)用派生類(lèi)方法時(shí),可以使用虛函數(shù)public class ShapeObj public virtual void
56、 area() System.Console.WriteLine(這是一個(gè)虛這是一個(gè)虛 Area 方法方法); 整理ppt124C# 中的多態(tài)性6-2整理ppt125C# 中的多態(tài)性6-3public class Circle : ShapeObj public override void area() System.Console.WriteLine(這是這是 Circle 的的 Area() 方法方法); public class Rectangle : ShapeObj public override void area() System.Console.WriteLine(這是這是 R
57、ectangle 的的 Area() 方法方法); public class Square : ShapeObj public override void area() System.Console.WriteLine(這是這是 Square 的的 Area() 方法方法); 定義了三個(gè)類(lèi)(定義了三個(gè)類(lèi)(RectangleRectangle、Circle Circle 和和 SquareSquare)。)。這些類(lèi)是從這些類(lèi)是從 ShapeObj ShapeObj 類(lèi)派生的,類(lèi)派生的,并且重寫(xiě)了并且重寫(xiě)了ShapeObj ShapeObj 類(lèi)的類(lèi)的 area() area() 方法。方法。ove
58、rride override 關(guān)鍵字用于重寫(xiě)基類(lèi)函數(shù)關(guān)鍵字用于重寫(xiě)基類(lèi)函數(shù) area()area()。整理ppt126C# 中的多態(tài)性6-4public class PolymorphismExp public static void main() ShapeObj objArray = new ShapeObj4; objArray0 = new ShapeObj(); objArray1 = new Rectangle(); objArray2 = new Circle(); objArray3 = new Square(); foreach (ShapeObj iterateArray
59、in objArray) iterateArray.area(); 每個(gè)派生自每個(gè)派生自 ShapeObj ShapeObj 的類(lèi)的的類(lèi)的 area()area()方法都被方法都被調(diào)用調(diào)用 整理ppt127C# 中的多態(tài)性6-5class SecondExp public int firstMethod() return(secondMethod()*thirdMethod(); public virtual int secondMethod() return(10); public int thirdMethod() return(20); class DerivedClass : Seco
60、ndExp public override int secondMethod() return(30); class TestPublic static void main() DerivedClass objDerived = new DerivedClass();System.Console.WriteLine(objDerived.firstMethod(); 在在DerivedClassDerivedClass中重寫(xiě)基類(lèi)中中重寫(xiě)基類(lèi)中的虛函數(shù)的虛函數(shù)secondMethod()secondMethod()整理ppt128C# 中的多態(tài)性6-6 多態(tài)性是智能重寫(xiě) 多態(tài)性 - 在運(yùn)行時(shí)決定調(diào)用哪個(gè)方法 多
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 管理培訓(xùn)課件
- 2024年延邊州縣事業(yè)單位專(zhuān)項(xiàng)招聘考試真題
- 過(guò)程方法培訓(xùn)課件
- 廣東2024行測(cè)真題及答案
- 2024年廣東“三支一扶”計(jì)劃招募考試真題
- 特殊兒童教育路徑-洞察及研究
- 攝影師工作流程SOP-企業(yè)管理
- 甘肅省隴南市徽縣2025屆七下英語(yǔ)期末復(fù)習(xí)檢測(cè)模擬試題含答案
- 企業(yè)價(jià)值觀對(duì)敬業(yè)度塑造-洞察及研究
- 2025年重慶市中考數(shù)學(xué)試題含解析
- GB/T 12149-2017工業(yè)循環(huán)冷卻水和鍋爐用水中硅的測(cè)定
- 斷絕子女關(guān)系協(xié)議書(shū)模板(5篇)
- 成都小升初數(shù)學(xué)分班考試試卷五
- Q∕SY 01007-2016 油氣田用壓力容器監(jiān)督檢查技術(shù)規(guī)范
- 水利水電 流體力學(xué) 外文文獻(xiàn) 外文翻譯 英文文獻(xiàn) 混凝土重力壩基礎(chǔ)流體力學(xué)行為分析
- 零星維修工程項(xiàng)目施工方案
- 物流公司超載超限整改報(bào)告
- 起重機(jī)安裝施工記錄表
- 江蘇省高中學(xué)生學(xué)籍卡
- 碳排放問(wèn)題的研究--數(shù)學(xué)建模論文
- 贏越酒會(huì)講解示范
評(píng)論
0/150
提交評(píng)論