




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、整理ppt1C# 课件课件第一章第一章第二章第二章第三章第三章第四章第四章第五章第五章第六章第六章第七章第七章第八章第八章第九章第九章第十章第十章ACCP 4.0补充补充整理ppt2.NET 平台以及Visual Studio.NET IDE简介 第一章第一章整理ppt3目标 讨论计算、Internet 和应用程序开发的转变 了解对 .NET 的需求 解释 CLR 和 IL 的角色 Visual Studio.NET IDE简介整理ppt4集中式计算哑终端主机集中式计算整理ppt5客户端/服务器计算客户端 - 服务器计算客户端:智能终端服务器PC数据大的话网络就不好了整理ppt6分布式计算2-
2、1分布式计算智能终端网络网络在本地分布式计算中,计算机通常位于 LAN 中整理ppt7分布式计算 2-2网络网络整理ppt8计算方案的转变集中计算客户端 - 服务器计算分布式计算Internet整理ppt9当前的 InternetWeb 服务器InternetWeb 服务器Web 服务器今天的今天的 Web 站点是独立的孤岛站点是独立的孤岛 Web 提供数据的提供数据的 HTML“图片图片”,而不是实际的数据而不是实际的数据 浏览器:变相的只读哑终端浏览器:变相的只读哑终端 结构与旧的分时模型相同结构与旧的分时模型相同 要进行个性化,需要在每个站点输要进行个性化,需要在每个站点输入相同的个人信
3、息入相同的个人信息!整理ppt10目前存在的难题家庭办公室联机信息其他信息脱机信息电子邮件需要个人个人信息空间信息空间用户用户开发人员开发人员 生成、测试和部署站点的工具不足重用不好(c+写的vb再用) 站点通常较吸引人,但没什么用处需要创建应用程序并将其布署到多台设备的工具整理ppt11Internet 的转变Web 服务器Web 服务器Web 服务器Web 服务器Web 服务器Web 服务器组合体组合体作为孤岛的作为孤岛的 Web 站点站点站点、服务和设备彼此协作,共同提供丰富的用户体验。整理ppt12应用程序开发的演变Internet任何人在任何位置都可以使用应用程序软件作为服务提供资源
4、丰富,基于应用程序资源丰富,基于应用程序来控制来控制 应用程序集成在本地系统服务中推向市场时间短更高的开发效率更高质量软件 应用程序和网络上所有应用程序集成在一起,从而创造独特的价值 因此,可以将焦点集中在创建独特的商业价值,不必关注建造基础设施 应用程序(Web 服务)在Internet/Intranet 中公开其程序特点 开发者通过调用 Web API 将 Web 服务集成到应用程序中 Web 上的组件编程!整理ppt13.NET - 演变的结果2-1融合计算和通讯形成组合体,不再是孤岛!分布式计算-本地进行软件成为服务应用程序可由任何人在任何地方使用整理ppt14.NET -演变的结果
5、2-2融合计算和通讯形成组合体,而不是孤岛!分布式计算本地进行软件成为服务应用程序可以由任何人在任何地方使用整理ppt15整理ppt16.NET - 将 DC(个人计算) 向前推进了一步2-1其他其他.NET 设备设备个人个人信息空间信息空间整理ppt17用户数据存放在网络上 - 可以随时随地进行访问可以从任何 .NET 设备访问数据创建可以通过任何浏览器、任何设备访问的应用程序.NET 应用程序利用了 Internet 的功能.NET - 以 Internet 为中心的一种全新的平台.NET - 将 DC 向前推进了一步2-2整理ppt18.NET 所支持的语言C#VB.NETEiffelC
6、OBOLSmallTalkADAPythonJScript.NETVC+整理ppt19代码代码被执行被执行C+VB编译器编译器编译器编译器可执行可执行代码代码可执行可执行代码代码RUNTIMERUNTIME语言特定的编译器和运行库整理ppt20代码代码被执行被执行C#VB.net编译器编译器编译器编译器可执行可执行代码代码可执行可执行代码代码RUNTIMERUNTIMEIL+元数据CLRIL 和 CLR 的使用Common Language Runtime整理ppt21执行 .NET 程序MSIL+元数据机器代码代码被执行CLR第一次编译第一次编译第二次编译第二次编译.NET 程序被编译两次,
7、第一次编译很慢,而第二次编译较快!语言语言编译器编译器.NET 源代码整理ppt22Microsoft 中间语言MSIL+元数据机器代码代码 被执行CLRMSIL帮助语言实现互操作IL 不是字节代码,但很接近字节代码。因此,执行应用程序时,IL 到机器码的转换速度非常快!通过 CLR将 MSIL 转换为具体 CPU 的代码CPU 无关 的指令集语言语言编译器编译器.NET 源代码整理ppt23公共语言运行库CLR.NET 源代码MSIL+元数据机器代码代码被执行管理内存易于设计组件和应用程序,其对象可以跨语言互动跨语言集成(特别是跨语言继承)一次编译,就可运行在支持运行库的任何 CPU 和操作
8、系统上语言语言编译器编译器整理ppt24VS.NET IDE帮助系统演示整理ppt25VS.NET IDE设计器演示整理ppt26VS.NET IDE窗口管理演示整理ppt27总结 .NET 是以 Internet 为中心的一种全新的平台 通过 .NET,可以将用户数据存放在网络上,并且随时随地通过与 .NET 兼容的任何设备访问这些数据 NET 独一无二的特征是可以提供多语言支持 以 .NET 语言编写的源代码将被编译两次,第一次由语言特定的编译器从源代码编译为 IL,第二次从 IL 编译为机器码整理ppt28Microsoft.NET 平台组件 第二章整理ppt29回顾 .NET 是以 I
9、nternet 为中心的一种全新平台 通过 .NET,可以将用户数据存放到网络上,随时随地通过与 .NET 兼容的任何设备访问该数据 .NET 独一无二的特征是提供多语言支持 以 .NET 语言编写的源代码被编译两次,一次由语言特定的编译器从源代码编译成 IL,第二次从 IL 编译成机器码整理ppt30目标 描述 Microsoft.NET 的核心组件 讨论 .NET 框架并列出其组件 谈论.NET优点整理ppt31Microsoft.NET 的组件MS.NET产品和服务产品和服务第三方第三方 .NET 服务服务MS.NET平台平台VS.NETMSN.NETOffice.NETbCentral
10、 serverfor .NETWindows.NET.Net 基础结构基础结构和工具和工具.Net 用户体验用户体验.NET 生成生成块服务块服务.NET 设备软件设备软件一些有机会生产构建在一些有机会生产构建在 .NET 平台平台上的服务的合作伙伴和开发人员上的服务的合作伙伴和开发人员整理ppt32Microsoft.Net 平台的功能Internet协议协议XMLInternet协议XMLMicrosoft.NET构建在 XML 和 Internet 协议的基础之上用于开发新 一代软件的一套工具和服务集旨在使对 Internet 上的任何资源组进行集成/编排成为可能可以更快更容易地设计、实
11、现和部署协作式 Web 解决方案整理ppt33XMLInternet协议协议XMLMicrosoft.NET将实际数据与表现形式分开构建新一代 Internet 的关键;使得能够对信息进行整理、编程和编辑提供了一种将数据发布到多种设备的方法使站点能够进行协作并提供能够彼此交互的 Web 类型丰富、性能高不用类型转换、穿透防火墙服务组合体整理ppt34SOAP 的功能Internet协议协议XMLMicrosoft.NETMicrosoft.NET 构建在 HTTP 和 SOAP(简单对象访问协议)等现有协议上SOAP 是基于 XML/HTTP 的协议SOAP 允许以独立于平台的方式访问服务、对
12、象和服务器SOAP 用于在分散的分布式环境中交换信息整理ppt35Microsoft.NET 平台编排.NET框架框架.NETEnterprise Server.NET 生生成块服务成块服务Windows CE、Windows ME、Windows 2000 和和 Windows.NET整理ppt36编排Windows (CE、 ME、 2000 和和.NET).NET框架框架 .NETEnterprise Server.NET 生成生成块服务块服务.NET 平台构建在 Windows 2000 服务器系列的可伸缩性、可伸缩性、可靠性、可靠性、安全性安全性和可管理性可管理性基础之上选择 Win
13、dows 2000 系列整理ppt37.NET框架框架编排.NETEnterprise ServerWindows (CE、 ME、2000 和和 .NET).NET 生成生成块服务块服务Web服务服务WebUI数据和数据和 XML基类基类公共语言运行库Microsoft.NET 框架的组件整理ppt38.NETEnterpriseServer编排.NET框架框架Windows (CE、 ME、2000 和和 .NET).NET 生成生成块服务块服务 通过服务器系列可以快速生成和管理一个集成的、支持 Web 的企业系统 可伸缩性设计 可以与最新的 Internet 和数据标准实现互操作安装 S
14、QL Server 2000Internet Security & Acceleration (ISA) Server 2000Host Integration ServerExchange 2000 Server & Exchange 2000 Conferencing ServerCommerce Server 2000BizTalk Server 2000Application Server 20007 个核心个核心 .NET Enterprise Server.NET Enterprise Server整理ppt39.NET 生成生成块服务块服务编排.NET框架框架.N
15、ETEnterprise ServerWindows(CE、 ME、2000 和和 .NET)由 Microsoft 和其他 ASP (应用程序提供)提供的商业 Web 服务这些服务可以在其他应用程序 / Web 服务中使用核心.NET 生成块服务;通知个性化日历动态提供.NET 生成块服务整理ppt40业务进程Web 服务组织 A组织 B 在组织内部以及在组织之间 多个客户、合作伙伴和服务提供商场所进程和 Web 服务运行在编排.NET框架框架.NETEnterprise Server.NET 生成生成块服务块服务Windows(CE、 ME、2000 和和 .NET)BizTalk Ser
16、ver 2000 为此编排服务提供这些工具。业务进程整理ppt41.NET框架作用 提供一个一致的面向对象的编程环境 提供一个将软件部署和版本控制冲突最小化的代码执行环境 提供一个保证代码安全执行的代码执行环境 提供一个可消除脚本环境或解释环境的性能问题的代码执行环境 使开发人员的经验在面对类型大不相同的应用程序时保持一致 按照工业标准生成所有通信,以确保基于 .NET Framework 的代码可与任何其他代码集成整理ppt42.NET Framework体系结构W i n d o w s公 共 语 言 运 行 库基 类 库A D O . N E TA S P . N E T公 共 语 言
17、规 范C #Visual Studio.NETV BC + +. . .W i n d o w s 窗 体X M LC O M + 服 务整理ppt43.NET Framework 核心组件 公共语言运行库 .NET Framework 类库 基类库 扩展类库整理ppt44Microsoft. NET Framework 的体系结构操作系统公共语言运行时 (CLR).Net Framework 类库 (FCL)整理ppt45.NET Framework 的组件基本框架类.Net Framework.Net Framework 类库类库ASP.NETCLSCLRCTS整理ppt46公共语言运行库
18、 公共语言运行库是建立在操作系统之上 公共语言运行库作用 管理内存 线程执行 代码执行 代码安全验证 编译以及其他系统服务整理ppt47托管代码定义 以运行库为目标的代码称为托管代码 C+分成两种,一种是托管C+,另外一种是非托管C+ C#是以运行库为目标设计的,因此用C#编写的代码基本上为托管代码 不以运行库为目标的代码称为非托管代码 .NET提供了与非托管代码互操作的服务,比如与COM互操作的Interop服务整理ppt48.NET Framework框架类库 .NET Framework 类库提供一组丰富的接口以及抽象类和具体(非抽象)类 可以按原样使用这些具体的类,或者在多数情况下从这
19、些类派生自己的类 若要使用接口的功能,既可以创建实现接口的类,也可以从某个实现接口的 .NET Framework 类中派生类整理ppt49公共语言规范(CLS) 公共语言规范 (CLS)是许多应用程序所需的一套基本语言功能 CLS 规则定义了通用类型系统的子集 CLS 通过定义一组开发人员可以确信在多种语言中都可用的功能来增强和确保语言互用性 大多数由 .NET Framework 类库中的类型定义的成员都符合 CLS整理ppt50使用VS.NET进行.NET应用开发 Windows应用程序开发 ASP.NET应用程序开发 移动设备应用程序开发 Web Services 构建.NET分布式系
20、统整理ppt51.NET特点总结4-1统一的API 传统的编程模式 VB、VC、Delphi采用不同的编程模式和编程API Windows编程和Web编程采用不同的编程模式 .NET编程模式 将所有的API组织在框架类库中,VB.NET,C#,VC.NET可以调用相同的API实现相同功能 ASP.NET Web窗体编程模式类似于VB的Web窗体设计器整理ppt52.NET特点总结4-2自动内存管理 传统内存管理模式 开发者可以操纵内存,为内存管理提高了灵活性,同时也降低了安全性、稳定性 COM中采用引用计数的方法实现内存管理,但是容易出现循环引用的问题 .NET内存管理模式 由.NET Fra
21、mework CLR实现内存分配 由.NET Framework CLR实现垃圾收集和垃圾回收整理ppt53.NET特点总结4-3安全类型系统 在.NET框架中不会有不安全的类型表 不会产生某一个类型的指针指向另外一个类型的情况 不可能有无初始化的变量,不可能索引超出边界的数组等等整理ppt54.NET特点总结4-4 安全意外处理 零安装(自我描述) 更好的版本控制 多语言支持 与COM的互操作性 XML Web Service整理ppt55总结 .NET 是以 Internet 为中心的一种应用程序开发平台。 此平台的主要优点在于用户可以随时随地使用与 .NET 兼容的设备访问所有重要数据。
22、 Microsoft.NET 主要由三个组件构成,即 Microsoft.NET 产品和服务、.NET 平台本身以及第三方 .NET 服务。 .NET 平台构成了独立于语言,可以从各种.NET 兼容设备上运行的应用程序的基础。 .NET 平台基于两种核心技术,即 XML 和 Internet 协议套件。整理ppt56C# 基础知识第三章第三章整理ppt57回顾 第二章 - - Microsoft .NET 的组件 .NET 是以是以 Internet 为中心的一种应用程序开发平台为中心的一种应用程序开发平台。 此平台的主要优点在于用户可以随时随地使用与此平台的主要优点在于用户可以随时随地使用与
23、 .NET 兼容兼容的设备访问所有的重要数据的设备访问所有的重要数据。 Microsoft.NET 主要由三个组件组成主要由三个组件组成,即即 Microsoft.NET 产产品和服务品和服务、.NET 平台本身以及第三方平台本身以及第三方 .NET 服务服务。 .NET 平台构成了独立于语言平台构成了独立于语言,可以从各种可以从各种 .NET 兼容设备兼容设备上运行的应用程序的基础。上运行的应用程序的基础。 .NET 平台基于两种核心技术平台基于两种核心技术,即即 XML 和和 Internet 协议套协议套件。件。整理ppt58目标 讨论 C# 中的类 讨论C#程序中的流程控制 阐释 C#
24、 中的基本数据类型 讨论 装箱和取消装箱的概念 讨论结构 讨论枚举类型 使用C#编写简单程序整理ppt59Microsoft .NET开发 Windows 应用程序和 Web 应用程序的新平台支持超过 20 种语言为 Windows 编程的可用功能带来了变革整理ppt60C# 简介充分利用了 .NET 平台C#编译器是.NET 家族中最高效的编译器C+ 的最新换代产品通过强制脚本类型检查,提高了开发人员的工作效率并增强了安全性允许有限制地使用本机指针整理ppt61C# 程序流一个简单的 C# 程序 -本程序将显示消息本程序将显示消息: :这是这是HelloWorld程序程序整理ppt62C#
25、编程构造3-1C# 中的变量以下列方式进行声明: AccessModifier DataType VariablePublicPrivateProtectedintstringfloat整理ppt63C#编程构造3-2 如果需要使用任何关键字作为变量名称,必须为该变量名称添加前缀 本程序的输出消息本程序的输出消息: :string是一个关键字但在本例用作一个变是一个关键字但在本例用作一个变量名量名整理ppt64C# 编程构造3-3using System;class Test static void Main() int array1 = new int5; Console.WriteLine
26、(10 * array12); 本示例本示例的输出的输出结果是结果是0整理ppt65默认值 常用数据类型的默认值:整理ppt66C# 中的输入/输出3-1使用 System 命名空间中的 Console 类的方法最常用的方法 Console.ReadLine( ) Console.WriteLine( )整理ppt67C# 中的输入/输出 3-2using System;class TestDefaultValues static void Main() int number, result; number=5; result=100 * number; Console.WriteLine(“
27、当当 100 与数字与数字 0 相乘时,结果为相乘时,结果为 1 , number, result); 突出显示的代码行起着占位符的作用,即指定变量结果突出显示的代码行起着占位符的作用,即指定变量结果值的显示位置值的显示位置。 index,alignment:formatString)可选整数,指示包含格式化值的区域的最小宽度。如果格式化值的长度小于对齐,则用空格填充该区域。如果对齐为负,则格式化的值将在该区域中左对齐;如果为正,则格式化的值将右对齐。如果没有指定对齐,则该区域的长度为格式化值的长度。如果指定对齐,则需用逗号分隔。G常规,E 或 F 中较短的F浮点数,常规表示法E用 E 表示法
28、表示的浮点数(其中,E 代表 10 的次幂) N带有分隔符的浮点数(在美国为逗号)C货币,带有货币符号和分隔符(在美国为逗号)D十进制数,仅用于整型X十六进制数,仅用于整型整理ppt68C# 中的输入/输出 3-3示例接受了一行的用户输入示例接受了一行的用户输入, ,并将其回显为输出并将其回显为输出整理ppt69if 结构2-1用于执行条件分支语法 表达式需要始终为 Boolean 类型的表达式整理ppt70If结构2-2上面的代码段将显示错误消息上面的代码段将显示错误消息 错误错误 CS0029:无法将类型无法将类型“string”隐式转换为类型隐式转换为类型“bool”整理ppt71swi
29、tch 语句2-1 语法 -每个每个case分支必须有一个分支必须有一个break语句语句整理ppt72switch 语句2-2Switch结构结构可以充当多个可以充当多个if语句语句整理ppt73循环结构当特定条件为 true 时执行一组特定的指令,或将特定指令组执行一定次数循环结构的类型 - while 循环循环 do 循环循环 for 循环循环 foreach 循环循环整理ppt74while 循环while 循环执行一组语句,直至指定条件为 falsebreak 语句 - 随时跳出循环continue 语句 - 跳过当前循环,并开始下一循环整理ppt75do 循环语法 -在条件检查之前
30、在条件检查之前, ,循环体中的语句组至少执行一次循环体中的语句组至少执行一次整理ppt76for 循环语法 -int sum=1;for(count=0;count10;count+) sum+;forfor语句循环语句循环1010次次,sum的的最终结果是的的最终结果是1010。整理ppt77foreach 循环2-1foreach 循环用于通过集合或数组来循环语法 -整理ppt78foreach 循环 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# 中的构造函数C# 中的构造函数与类同名class MyConstructorExpublic MyConstructorEx()/MyConstructorEx 构造函数整理ppt80C# 中的析构函数 C# 中的析构函数与类也同名class MyConstructorEx public MyConstructorEx() /
32、MyConstructorEx 构造函数 public MyConstructorEx() /MyConstructorEx 析构函数 整理ppt81C# 的基本类型2-1C# 的数据类型分为两种基本类型 值类型值类型int、char 和结构和结构 引用类型引用类型类、接口、数组和字符串类、接口、数组和字符串整理ppt82C# 的基本类型2-2 值类型 仅在内存中保存值 存储与堆栈中 引用类型 将对象的地址存储与堆中 null表示没有应用任何对象 整理ppt83值类型variableVal是值类型是值类型输出结果为输出结果为100100,而不而不是是200200整理ppt84引用类型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值类型和引用类型值引用变量保存实际值引用存储位置内联(堆栈)堆默认值零Null传递给函数的参数值的副本引用的副本整理ppt86装箱和取消装箱装箱是从值类型到引用类型的转换取消装箱是从引用类型到值类型的转换示例整理ppt87C# 中的数据类型处理C# 提供了一种“统一类型系统” C# 中所有数据类型都是从一个类即 object 类派生而来的整理ppt88静态成员成员不与任何特定的对象或类关联仅可以有一个实例static int staticMem;static int instanceCount()/instan
35、ceCount 实现整理ppt89数组一组具有类似数据类型的值属于引用类型,因此存储于堆中C# 中的数组声明语法如下 DataTypenumber of elements ArrayName;int6 array1;整理ppt90结构结构属于值类型可以有方法可以拥有构造函数不能实现继承struct structEx public int structDataMember; public void structEx() /构造函数实现 public void structMethod1() /structMethod1 实现 整理ppt91枚举类型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个值的枚举类型个值的枚举类型WeekDays整理ppt92枚举类
37、型2-2C# 中的枚举数都有与值相关联的数字默认情况下,枚举数的第一个元素被指定为 0 值,后续的各个枚举数元素的值依次递增默认值可以在初始化阶段中重写整理ppt93编译和运行步骤 1 - 在记事本中输入代码步骤 2 - 使用 .cs 扩展名保存文件步骤 3 - 切换至 DOS 提示符,再输入以下命令要运行 C# 文件,可以键入不带扩展名的文件名csc csc First.cs 整理ppt94总结在 C# 中,数据类型分为两种基本类型,即值类型和引用类型。装箱是指从值类型到引用类型的转换,而取消装箱是指从引用类型到值类型的转换。C# 中的结构内部可以定义方法,也可以拥有构造函数。枚举类型是声明
38、一组命名常数的独特类型。整理ppt95在 C# 中实现 OOP 概念第四章第四章整理ppt96作业点评 变量没初始化 结构的构造函数没有指定参数 String string 引用(字符串)String是固定不变的,在进行字符串连接的时候是新建一个字符串,进行连接后,最后赋值,如果对String赋值多次,就会在内存中保存多个这个对象的副本,浪费系统资源 Csc 静态 其它例子整理ppt97回顾 第三章C#基础 C#变量的声明方式如下变量的声明方式如下: AccessModifier DataType VariableName; 在在C#中,数据类型分为两种基本类型,即中,数据类型分为两种基本类型
39、,即值类型和引用类型。值类型和引用类型。 装箱是指从值类型到引用类型的转换,而装箱是指从值类型到引用类型的转换,而取消装箱是指从引用类型到值类型的转换。取消装箱是指从引用类型到值类型的转换。 C#的结构内部可以定义方法,也可以拥有的结构内部可以定义方法,也可以拥有构造函数。构造函数。整理ppt98目标 在C#中使用构造函数 在C#中使用析构函数 解释垃圾回收器的工作原理 讨论方法重载 讨论操作符重载 在C#中使用继承 讨论C#中的重写整理ppt99C# 中的构造函数3-1是类中的特殊类型的方法是每次创建对象时要调用的函数通常用于初始化与类同名不返回值整理ppt100构造函数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); 无构造函数输出无构造函数输出的结果是的结果是0 0有构造函数输出有构造函数输出结果是结果是365365整理ppt101带参数的构造函数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; 传递不同个数的参数传递不同个数的参数 传递个数相同但类型传递个数相同但类型不同的参数不同的参数整理ppt102C# 中的析构函数由C#中的垃圾回收器调用垃圾回收器通过销毁不再需要或不再被引用的对象来释放内存语法 DaysInY
42、ear()/ 析构函数实现析构函数实现不能对结构使用析构函数。只能对类使用析构函数。一个类只能有一个析构函数。无法继承或重载析构函数。无法调用析构函数。它们是被自动调用的。析构函数既没有修饰符,也没有参数。整理ppt103垃圾回收器3-1垃圾回收器的工作原理 如果为定义析构函数的对象分配了内存,运行如果为定义析构函数的对象分配了内存,运行库将库将把该对象添加到需要销毁的对象的列表中。把该对象添加到需要销毁的对象的列表中。 垃圾回收垃圾回收器定期检查器定期检查有没有不再被引用的对象有没有不再被引用的对象 如果如果找到了找到了其名称没有列在销毁器列表中的对其名称没有列在销毁器列表中的对象,就立即清
43、除该对象。象,就立即清除该对象。 完成垃圾回收后完成垃圾回收后,将调用销毁器线程,该线程调将调用销毁器线程,该线程调用有标记为用有标记为“准备销毁准备销毁”的对象的销毁方法的对象的销毁方法(析构函数)。(析构函数)。整理ppt104垃圾回收器3-2对象销毁过程发生后,就将该对象从需要销毁的对象列表中删除。因为该对象没有被引用,也没有列在销毁器列表中,所以下次进行垃圾回收时就会将它清除。整理ppt105垃圾回收器3-3有析构函数的对象占用的资源较多,因为即使不再需要它们,它们仍会在内存中驻留较长时间。销毁过程作为独立的线程执行,该线程会占用大量资源。GC.Collect ()强制进行垃圾回收。强
44、制进行垃圾回收。 整理ppt106方法重载重载方法有两种方式 指指定不同个数的参数定不同个数的参数 指定指定不同类型的参数不同类型的参数整理ppt107不同参数个数的方法重载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; 参数的类型相同参数的类型相同参数个数不同参数个数不同整理ppt108不同参数类型的方法重载. public void AreaCal(int radius) areaVal = (22/7)* radius*radius;public void AreaCal(string shapeName) Console.WriteLine(0 的面积没有计算的面积没有计算,shapeName);. 方法中参数个数相等方法中参数个数相等, ,参数类型不同参数类型不同整理ppt
46、109操作符重载3-1 重载操作符意味着使该操作符具有不同的行为 使用操作符可以使方程式简单易懂/ 第 1 行int result = Decimal.Add(54, 200);/ 第 2 行int result2 = 54 + 200;上述两行执行同样的操作上述两行执行同样的操作, ,但操作符更简便易懂但操作符更简便易懂整理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); / 主函数主函数 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(终点的位置在起点以东 0 度,以北 1 度。, newDistance.longitude,newDistance.latitude); 整理ppt112C# 中的继承2-1将新类作为另一个类的后代来声明和使用避免重复编写代码提供代码重用的巨大好处整理ppt113C# 中的继承2-2有两种继承类型 单一继承单一
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); 类类StringVal继承继承CharacterVal因此可以直接引用方法因此可以直接引用方法setCharVal整理ppt115密封类 如果不需要类被继承则应当密封该类sealed class classOne / 类的实现通过指定通过指定sealed关键字,可以密
52、封任何类关键字,可以密封任何类整理ppt116方法重写2-1重写基类中现有方法的步骤: 在继承类中声明同名的新方法 在该方法名前附加new关键字 整理ppt117方法重写2-2using System;class IntAddition public void add() int firstNum=1; int secondNum=2; Console.WriteLine(两数之和是:两数之和是: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类中基类中类中基类中add方法被重载方法被重载整理ppt118总结2-1 带参数的构造函数是接受参数的构造函数 在 C# 中,析构函数由垃圾回收器调用。 在
54、 C#中,有两种方式来重载方法 指定不同个数的参数 指定不同类型的参数 C#允许重载操作符 整理ppt119总结2-2 重载操作符意味着使操作符(例如,加法操作符 +)在应用于结构或类的某些对象时具有不同的行为 C# 不支持多重继承 要重写基类的现有方法,需要在继承类中声明一个同名的新方法,并在方法名称前附加 new 关键字整理ppt120C# 中的高级 OOP 概念第五章第五章整理ppt121回顾 第四章 - 实现C中的高级OOP概念 带带参数的构造函数是指接受参数的构造函参数的构造函数是指接受参数的构造函数。数。 在 C#中,析构函数由垃圾回收器调用。中,析构函数由垃圾回收器调用。 在在C
55、#中允许方法重载中允许方法重载 在在C#中允许操作符重载中允许操作符重载 C#不支持多重继续不支持多重继续 要要重写基类的现有方法,需要在继承类中重写基类的现有方法,需要在继承类中声明一个同名的新方法,并在方法名称前声明一个同名的新方法,并在方法名称前附加附加 new关键字关键字 整理ppt122目标 讨论多态性 使用虚函数 讨论抽象基类 讨论接口的概念 使用接口整理ppt123C# 中的多态性6-1 多态性和虚函数关系非常密切 多态性允许在运行时实现派生类的方法 需要从基类的对象调用派生类方法时,可以使用虚函数public class ShapeObj public virtual void
56、 area() System.Console.WriteLine(这是一个虚这是一个虚 Area 方法方法); 整理ppt124C# 中的多态性6-2整理ppt125C# 中的多态性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() 方法方法); 定义了三个类(定义了三个类(RectangleRectangle、Circle Circle 和和 SquareSquare)。)。这些类是从这些类是从 ShapeObj ShapeObj 类派生的,类派生的,并且重写了并且重写了ShapeObj ShapeObj 类的类的 area() area() 方法。方法。ove
58、rride override 关键字用于重写基类函数关键字用于重写基类函数 area()area()。整理ppt126C# 中的多态性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(); 每个派生自每个派生自 ShapeObj ShapeObj 的类的的类的 area()area()方法都被方法都被调用调用 整理ppt127C# 中的多态性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中重写基类中中重写基类中的虚函数的虚函数secondMethod()secondMethod()整理ppt128C# 中的多态性6-6 多态性是智能重写 多态性 - 在运行时决定调用哪个方法 多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度LED显示屏拼接单元定制安装合同
- 二零二五版二手车抵押交易合同规范
- 2025版标准个人股权投资退出协议范本
- 2025版XX污水厂污水处理设备采购与安装技术服务合同
- 2025年校园快递服务单位快检能力提升合同
- 二零二五年绿色仓储租赁及仓储环境改善合同
- 2025版文化旅游景区建设包工包料施工合同样本
- 二零二五年度材料采购合同范本(含质量保证)
- 二零二五年度环保节能设备采购及应用服务合同
- 二零二五年度办公室改造项目风险管理与保险合同
- 断指再植术后的切口
- 曾国藩为官之道
- 李中莹心理创伤简快辅导技巧(课堂PPT)
- Q∕GDW 12205-2022 高压柔性直流输电系统控制保护联调试验技术规范
- VS1真空断路器说明书
- JTT230-2021汽车导静电橡胶拖地带_(高清-最新)
- 监理周例会总承包单位工作汇报PPT课件
- 四大经典之温病
- 四氯化硅的提纯
- 《小学公开课教研活动总结》
- 初中物理总复习笔记
评论
0/150
提交评论