第7篇 面向对象的编程.ppt

  1. 1、本文档共89页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
九 索引器 索引器:使得可以像数组那样对对象使用下标,它为我们提供了通过索引方式方便地访问类的数据信息的方法 索引器的名称只能是this,必须至少有一个参数 可以重载,因为索引器有参数 可以通过索引器方便的访问类中的数组或者集合 在给对象中的数组元素赋值的时候,可以准备好一个,给对象中的数组元素赋一个值,不必等到所有的值都准备好,然后再赋值。 索引器 索引器语法: 类中的集合或数组 访问修饰符 返回类型 this [ 参数列表 ] { get { return 类中的集合或数组[ 参数列表 ]; } set { 类中的集合或数组 [ 参数列表 ]=value;//必须是value } } 不使用索引器 使用索引器 父类和子类中可以存在同名方法,这些同名的方法可以分为重载、重写和隐藏三种类型。 1. 重载 定义方法名相同,但是方法的参数列表不同。能通过传递不同的参数来决定到底调用哪一个方法。注意返回值类型不同不能构成重载。 2. 重写 父类方法中使用virtual关键字,子类方法中使用override关键字声明的同名方法,父类子类的同名方法名称相同,参数列表也相同。 3. 隐藏 父类中的方法不声明为vitrual(默认为非虚方法),在子类中声明与父类同名时,需使用new关键字,以隐藏父类同名方法 统一的标准——接口 接口是面向对象编程的一个重要技术,在C#中负责实现多重继承。 一个接口定义一个协定,实现接口的类或结构必须遵守其协定。 接口的定义 接口可由方法、属性、事件、索引器或这四种成员类型的任何组合构成。 接口不能包含常数、字段、运算符、实例构造函数、析构函数或类型,也不能包含任何种类的静态成员。接口成员一定是公共的。 访问修饰符 interface 接口名 { //接口主体 } 接口不能包含接口所定义的成员的任何实现语句,接口只指定实现该接口的类或接口必须提供的成员 接口的实现 定义了接口后,就要在类或结构中实现。 类和接口的关系称为实现。 实现接口的语法和继承类一样,都有“:”,接口中的方法在类中实现时不是重载,不需要使用override关键字。 接口中不能定义构造函数,所以接口不能实例化。 接口的实现 接口必须经由类或者结构进行实现 class 类名 :接口名称1,接口名称2{//实现接口1,2中的成员} 接口的实现 接口的继承 子类可以继承一个父类,但可以实现多个接口。C#中的子类只能有一个基类,不支持多重继承。 在C#中这属于多重继承,要用接口来实现,其实接口就是为了实现多重继承而产生的。 C#中接口可以多继承,接口之间可以互相继承和多继承。 委托 委托是什么? C#中的一种引用类型 ,一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值 委托 使用委托的理由 在运行的时候,我们才知道该调用哪个方法,在这之前我们只知道方法的返回类型和将要传递给方法的参数,至于哪个方法去执行,我们并不知道,其实我们也不关心,我们关心的是方法执行的结果 委托是一种安全的类型操作 委托 使用委托的理由 在运行的时候,我们才知道该调用哪个方法,在这之前我们只知道方法的返回类型和将要传递给方法的参数,至于哪个方法去执行,我们并不知道,其实我们也不关心,我们关心的是方法执行的结果 委托是一种安全的类型操作 委托 使用委托的步骤 定义一个委托 创建委托实例 将方法的细节传递给委托实例 调用委托方法 定义委托 语法: 修饰符 delegate 返回类型 委托名称(参数列表); 从具体的语法上看,定义委托类似于方法的定义,因为我们可以通过委托来调用方法,所以在委托定义的时候要声明方法的返回类型和参数列表 创建委托实例,包装方法 语法: 修饰符 委托实例名称 =new 委托名称(方法名称); 实例化委托类似于类的实例化 方法名称:可以是静态方法,也可以是对象方法 调用委托方法 语法: 委托实例名称(参数); 变量=委托实例名称(参数); 调用委托方法,类似于调用普通方法 委托示例 委托示例 多播委托 语法: 委托第一个方法 委托引用=new 委托名称(方法名称); 第二个以后的方法 委托引用+=new 委托名称(方法名称); 可以将多个方法委托给一个委托实例,那么委托在调用的时候,只返回最后一个方法的返回值,前面方法的返回值被冲掉了 因此在一个委托实例中封装了多个方法时,应该将委托的返回类型定义为void 多播委托示例 多播委托示例 事件 事件源,事件,监听器 事件:是类或者对象用来“发出通知”的成员,通过提供事件的句柄,客户能够把事件和可执行代码联系在一起 事件 发送器:发送事件的对象,负责引发事件 接收器:在事件发

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档