第3章 C面向对象程序设计.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文档。上传文档
查看更多
第3章 C面向对象程序设计

第三章 C#面向对象程序设计 内容提要 3.1面向对象编程简介 3.2 定义类 3.3 定义类成员 3.4类的更多内容 什么是面向对象编程 面向对象编程代表了一种全新的程序设计思路 对象:变量和相关的方法的集合。其中变量表明对象的属性,方法表明对象所具有的行为。 类:通常将属性及行为相同或相似对象归为一类。类可以看成是对象的抽象,代表了此类对象所具有的共同属性和行为 属性和字段:通过属性和字段可以访问对象中包含的数据。 方法:对象的所有行为都可以用方法来描述 静态成员:可以在类的实例之间共享,可以看作是类的全局对象 对象的生命周期 每个对象都一个明确定义的生命周期,即从使用类定义开始一直到删除它为止。在对象的 生命周期中,除了“正在使用”的正常状态之外,还有两个重要的阶段: 构造阶段——对象最初进行实例化的时期。这个初始化过程称为构造阶段,由构造函数完成。 析构阶段——在删除一个对象时,常常需要执行一些清理工作,例如释放内存,由析构函数完成。 3.1.2 OOP技术 抽象与接口 继承 多态性 重载 消息和事件 3.2 定义类 C#使用class关键字来定义类。其基本结构如下: Class MyClass { // class members } 还可以在类定义中指定继承。C#支持类的单一继承,即只能有一个基类,语法如下: class MyClass : MyBaseClass { // class members } 接口的定义 接口声明的方式与声明类的方式相似: interface ImyInterface { // interface members } 接口的继承也可以用与类继承的类似方式来指定。主要的区别是可以使用多个基接口: public interface IMyInterface : IMyBaseInterface, ImyBaseInterface2 { // interface members } 3.2.2 Object类 所有的.NET类都派生于System.Object。 如果在定义类时没有指定基类,编译器就会自动假定这个类派生于object。 其重要性在于,自己定义的所有类除了自己定义的方法和属性外,还可以访问为Object定义的许多公共或受保护的成员方法。 3.2.3 构造函数和析构函数 构造函数 使用下述语法把简单的构造函数添加到一个类中: class MyClass { public MyClass() { // Constructor code } // rest of class definition } 这个构造函数与包含它的类同名,且没有参数,这是一个公共函数,所以用来实例化类的对象。 构造函数的执行序列 为了实例化派生的类,必须实例化它的基类。而要实例化这个基类,又必须实例化这个基类的基类,这样一直到实例化System.Object为止。 如果对一个类使用非默认的构造函数,默认的情况是在其基类上使用匹配十这个构造函数签名的构造函数。如果没有找到这样的构造函数,就使用基类的默认构造函数。 析构函数 class MyClass { ~MyClass() { //destructor code } } 类的析构函数是用类名和前缀~来声明的。当进行无用存储单元收集时,就执行析构函数中的代码,释放资源。在调用这个析构函数后,还将隐式地调用基类的析构函数,包括System. Object根类中的Finalize()调用。 3.2.4 接口和抽象类 类似之处: 抽象类和接口都包含可以由派生类继承的成员。 接口和抽象类都不能直接实例化,但可以声明它们的变量。 区别: 派生类只能继承一个基类,即只能直接继承一个抽象类(但可以用一个继承链包含多个抽象类);类可以使用任意多个接口 抽象类可以拥有抽象成员和非抽象成员;接口成员必须都在使用接口的类上执行——它们没有代码体 接口成员被定义为公共的;抽象类的成员也可以是私有的、受保护的、内部的或受保护的内部成员 3.2.5 类和结构 结构与类的区别在于: 结构是值类型,不是引用类型。它们存储在堆栈中或存储为内联,其生存期的限制与简单的数据类型一样。 结构不支持继承。 结构的构造函数的工作方式有一些区别。尤其是编译器总是提供一个无参数的默认构造函数,这是不允许替换的。 使用结构,可以指定字段如何在内存中布局 3.3 定义类成员 成员定义 所有成员都有自己的访问级别,用下面的关键字之—来

文档评论(0)

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

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

版权声明书
用户编号:5132241303000003

1亿VIP精品文档

相关文档