第三章C面向对象的编程技术.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章C面向对象的编程技术.ppt

第三章  面向对象的编程技术 设计对象 3.1 学习完本节后,你将能够: 在对象中封装信息 使用属性管理对封装数据的访问 封 装 性 3.1.2 将类的某些数据和操作这些数据的代码隐藏起来,这就是封装 封装的好处: 可以隐藏类实现的细节 简化用户的使用 易于软件的更新、修订、维护。可以修改内部实现,但不影响用户的使用 访 问 修 饰 符 使用访问修饰符,可以定义应用程序中类成员的作用域(可见性) 属 性 3.1.3 属性是“聪明”的字段,“特殊”的方法 定义属性类似于定义一个方法,但使用属性时如同使用一个字段 创 建 属 性 3.1.3 语法: 创 建 属 性 3.1.3 示例: 使 用 属 性 3.1.3 示例: 属 性 3.1.3 如果只提供了get{ },没有set{ },这样的属性为只读属性 如果只提供了set{ },没有get{ },只写属性 优点: 属性在使用时类似于类的字段,简单 属性在实现时类似于方法,可以编写代码控制用户对数据的存、取,增加安全性检查 可以设置只读或只写属性 编写和使用属性 3.1.4 继 承 性 3.2 定义基类 创建派生类 创建密封类 继 承 3.2.1 “A” is a kind of “B”,猫是一只动物,阿土仔是一个人 “A” is a kind of “B”,说明B是A的一个父类,A是B的子类(基类/派生类) 子类无条件的接收父类具有的特性,包括属性和方法,这就叫做继承 继承允许把公共的属性和方法包含在基类中得到重用,此外,子类还可以添加自己的特性 利用继承,可以以现有的类为基础,创建出新的类,实现了代码的重用 继 承 3.2.1 继承描述了“是什么种类” ( is a kind of)的关系 派生类从基类继承属性和方法,实现了代码重用 派生类变得更专门化 在C#中只支持单一继承,即每个子类只能有一个父类 派 生 类 3.2.2 示例: 动物园需要管理3种动物,羚羊,狮子,大象 派 生 类 3.2.2 示例: base 关键字 3.2.3 base 指代一个对象的父类/基类 当子类中的成员与父类成员重名是,父类的成员被隐藏 base 的作用: 点取父类中被子类隐藏了的成员变量 点取被子类覆盖了的方法 作为方法名表示父类的构造函数 密 封 类 3.2.4 使用sealed关键字声明密封类 密封类不允许其他类继承该类 密封的方法不允许被覆盖 如果你的类不希望被别人继承、修改,为安全起见,把它们定义为sealed吧! 和java中的final相似 创建派生类 3.2.5 多 态 3.3 通过在基类中使用虚方法来实现多态性 创建和使用抽象类 多 态 性 3.3.1 具有多种不同的形态,这种能力称为多态性 子类继承了父类的特性,但子类在某些细节上各不相同,多种多样,如何做到这一点呢? 编 写 虚 方 法 3.3.2 如果希望某个方法的实现能够在子类中进一步得到改进,那么将方法定义为虚方法 使用virtual关键字定义虚方法 这样子类就可以改进从父类继承下来的Eat方法了 编 写 虚 方 法 3.3.2 如果希望改进父类的某个虚方法,使用override关键字覆盖父类的方法,提供自己的实现就可以了 当覆盖虚方法时,覆盖的方法必须与被覆盖的方法具有相同的方法签名 这样子类就可以有与众不同的Eat方法了 虚 方 法 的调 用 3.3.2 当调用某个虚方法时,运行时会根据具体对象的类型,动态决定调用哪个方法。 多 态 的 实 现 3.3.2 抽象方法和抽象类 3.3.3 抽象方法 只有方法声明,但没有方法实现,是一个空方法 抽象的方法隐式为虚方法,必须被覆盖 抽象类: 包含了抽象方法的类必须声明为抽象类 只能被继承,但不能创建一个抽象类的对象实例 使用abstract关键字定义抽象类和抽象方法 如果你的某个类的方法不知道该如何实现,实现的细节是由子类决定的,那么把它定义成abstract吧! 抽象方法和抽象类 3.3.3 思考题: 为什么使用抽象方法 定义一个shape类,表示各种几何图形,方法getArea( )用来计算图形的面积,该如何实现这个方法呢? 抽象方法和抽象类 3.3.3 解决办法:定义为abstract,让各个子类自己去实现吧。 使用多态性 3.3.4 面向对象编程优点 3.1.1 简易性 对象反映了现实世界的元素,使程序更容易设计 封装性 隐藏了重要的数据和实现细节,易于代码维护,更安全 继承性 实现了代码重用,提高了开发效率 多态性 实现了现

文档评论(0)

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

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

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档