第4讲 面向对象程序设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
?EventHandler是一个委托声明如下 ?????????public?delegate?void?EventHandler(?object?sender?,?EventArgs?e?) ????注意这里的参数,前者是一个对象(其实这里传递的是对象的引用,如果是button1的click事件则sender就是button1),后面是包含事件数据的类的基类。 ????下面我们研究一下Button类看看其中的事件声明(使用WinCV工具查看),以Click事件为例。 ?????????public?event?EventHandler?Click; ????这里定义了一个EventHandler类型的事件Click ????前面的内容都是C#在类库中已经为我们定义好了的。下面我们来看编程时产生的代码。 ????????private?void?button1_Click(object?sender,?System.EventArgs?e) ????????{ ????????????... ????????} ????这是我们和button1_click事件所对应的方法。注意方法的参数符合委托中的签名(既参数列表)。那我们怎么把这个方法和事件联系起来呢,请看下面的代码。 ????????this.button1.Click?+=?new?System.EventHandler(this.button1_Click); ????把this.button1_Click方法绑定到this.button1.Click事件。 Button Click事件 7.1.8 类的继承 继承是面向对象程序设计中实现代码重用的重要机制之一,它起源于现实世界中事物之间的联系。 类的继承的基本格式与功能如下。 [格式]: class 派生类类名:基类类名 { 成员声明列表; } 【例7-10】 类继承的演示。请观察并分析下列程序的执行结果。 (程序代码详见例7-10) [执行结果] 抽象类 抽象类是基类的一种特殊类型。除了拥有普通的类成员之外,还有抽象类成员。抽象类成员中的方法和属性,只有声明(使用关键字abstract),而没有实现部分。由于对实例而言,没有实现的成员是不合法的,所以抽象类永远也不能实例化。这种不能实例化的类也有它的作用空间,它们可以在类层次结构的上层,对于派生于该类的其他类而言,抽象类就确定了子类的基本结构和意义,从而使程序框架更容易建立。 抽象类 包含一个或多个抽象函数的类本身必须声明为abstract,但是,抽象类可以包含非抽象的成员。从抽象类派生的类必须对基类中包含的所有抽象方法提供实现过程,否则,它也为抽象类。抽象函数为隐式的虚函数,所以为继承的抽象类提供了实现代码的方式与覆盖一个虚方法相似。另外,属性和索引也可以声明为abstract。 密封类 上面介绍的种种例子无不说明继承的作用显著,但有时候,我们并不希望自己编写的类被继承,或者已经认定没有必要继承了。于是,C#提出了密封类(sealed class)的概念。类声明为密封后,就不能用来派生新的类。 密封类 密封类具有不能用来继承的限制,但它也有自身的长处。一个类声明为密封的(sealed)有利于提高稳定性。因为,继承性是对基类的内部的某种程度的保护性访问。如果类是密封的,那么就完全避免了由派生类引起崩溃的可能性。同时,编译器也能针对密封类做相应的优化,例如,可以避免增加与虚拟方法相关联的系统总开销。 接口 1. 接口介绍 接口是用来定义一种程序的协定。接口好比一种模版,这种模版定义了实现接口的对象必须实现的方法,其目的就是让这些方法可以作为接口实例被引用。接口的定义如: public interface IPartA { void SetDataA(string dataA); } 接口使用关键字interface定义,接口可以使用的修饰符包括new,public,protected,internal,private等。接口的命名通常是以I开头,如IPartA,IPartB。接口的成员可以是方法、属性、索引器和事件,但不可以有任何的成员变量,也不能在接口中实现接口成员。接口不能被实例化。接口的成员默认是公共的,因此不允许成员加上修饰符。 【例】接口演示。 using System; // 定义接口IPartA public interface IPartA { void SetDataA(string dataA); } // 定义接口IPartB,继承IPartA public interface

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档