面向对象程序设计简介.PDF

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

第3章 Chapter 3 面向对象程序设计简介 最早的高级计算机语言(比如Fortran 、COBOL 和C )都是过程式语言。以过程式语言 编写的程序的自然组织结构是一系列要按顺序执行的任务。过程式程序设计特别适合于某 些问题类型,比如解数学方程。不过,也有许多问题类型(例如,用户界面程序设计)就不 适合使用过程式程序设计来解决了。今天,在计算的许多领域,占据主导地位的是一种不 同的程序设计范型,称为面向对象程序设计 (object-oriented programming )。Objective-C 是 面向对象语言的一个示例。它扩展了过程式C 语言,添加了一些构造和语法,用以支持面 向对象程序设计。 本章首先介绍了面向对象程序设计的基本原理,接下来的一节说明了在Objective-C 中 如何实现这些概念,本章最后一节则列出了Objective-C 对C 语言的增补。 3.1 面向对象程序设计 面向对象程序设计是一种把程序组织进彼此交互的对象集合中的编程风格。对象是相 关的变量和一些过程的组合,其中前者对问题空间中的事物建模,后者也称为方法,代表 对象知道如何执行的动作。在Objective-C 中,对象通过发送和接收消息(message )来进行 通信。发送给对象的消息就是发送给对象的请求,要求执行它的某个方法。 例如,绘图程序可能具有一个Shape 对象,代表用户可以在屏幕上自由地绘制的任意 形状(比如图3.1 中所示的形状)。Shape 对象将具有一些变量,用于存储定义其轮廓的点、 颜色及其在绘图中的位置。它将具有一些用于设置和获取这些量的方法,以及一个用于在 屏幕上绘制它自身的方法。要在屏幕上绘制Shape ,将给Shape 发送一条draw 消息。作为 50   第一部分 Objective-C简介 响应,Shape 将执行它的draw 方法(它包含用于执行实际绘图任务的代码)。 图3.1 一些形状 3.1.1 类和实例 对象通过它们的类来类型化。每个对象都属于某个类;它是那个类的实例 (instance )。 采用现实的类比,在Porsche (保时捷)跑车的计划和技术说明书中包含的信息就是一个类, 该信息定义了Porsche 是什么以及如何构造它。在车道上开动的实际汽车就是Porsche 类的 实例。回到计算机程序的世界中来,类是一个模板或处方,它定义了一组变量和一组方法, 其中前者称为实例变量 (instance variable ),后者包括用于实现那些方法的代码。对象(类 的实例)是一个实际的内存块,为类中定义的变量集提供存储空间。一个给定的类可以具有 多个实例。每个实例都是一个单独的内存区域,对于通过类定义的实例变量,它们都具有 自己的副本。 3.1.2 方法 方法类似于函数,但是它们不是一回事。方法是代表定义它们的类的实例执行的。当 对象执行某个方法时,该方法将能够访问对象的数据。如果发送一条draw 消息给一个 Shape 对象,draw 方法将使用那个Shape 对象的轮廓、位置和颜色。如果把相同的draw 消 息发送给一个不同的Shape 对象,那么draw 方法将使用另一个Shape 对象的轮廓、位置和 颜色。 3.1.3 封装 封装(有时称为信息隐藏 (information hiding ))是指把类的内部工作方式对类的用户隐 藏起来。这种方式通过减少程序的不同部分之间的联系来降低复杂性。对象只能通过定义 的接口(即它的类实现的公共声明的方法集)来操纵。 编写使用Shape 类的代码的程序员不需要知道Shape 的数据在内部是如何存储的,或者 绘图代码是如何工作的。他只需要知道当Shape 实例接收到一条draw 消息时,它将绘制自身。 封装可以让类的开发人员自由地处理它的实现,而不会扰乱使用类的代码。例如, Shape 类的开发人员可能更改Shape 用于存储描述了其轮廓的点的坐标系统,或者通过缓存 第3章 面向对象程序设计简介   51 形状的位图表示来改进draw 方法的性能。只要新的坐标系统以及新的、改进的draw 方法 在各种情况下都可以产生与老版本相同的结果,就不必更改其他的代码。在下一

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档