- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 方法
在各种情况下都可以产生与老版本相同的结果,就不必更改其他的代码。在下一
您可能关注的文档
- 镇江市职教中心2003-2004学年度第一学期教师课职务安排表(大专部.doc
- 附件-学籍查询具体流程及问题解决方法.doc
- 附件12017年4月吉林省高等教育自学考试开考专业课程使用教材.doc
- 附件1《数字化城市管理信息系统技术要求》征求意见稿.doc
- 附件22018年10月吉林省高等教育自学考试停考过渡专业课程使用.doc
- 附件5高职机电类专业人才培养模式改革与实施-宁德职业技术学院.PDF
- 附加说明-PIC单片机.PDF
- 限位开关详解以及工作原理-omal.PDF
- 除法运算和乘.ppt
- 零件通路商e化供应链管理-电子零件公会.doc
- 2024年04月浙江杭州西湖区住房和城乡建设局招考聘用编外合同制工作人员笔试历年典型题及考点精讲带答案详解.pdf
- 2024年04月浙江台州温岭市公办幼儿园招考聘用劳动合同制教职工90人笔试历年典型题及考点精讲带答案详解.pdf
- 2024年04月浙江台州玉环市机关事务中心招考聘用编外人员笔试历年典型题及考点精讲带答案详解.pdf
- 2024年04月浙江嘉兴市机关事务服务保障中心招考聘用岗位合同工笔试历年典型题及考点精讲带答案详解.pdf
- 2024年04月浙江嘉兴市中级人民法院招录岗位合同工笔试历年典型题及考点精讲带答案详解.pdf
- 2024年04月浙江宁波市北仑区人民医院招考聘用编外工作人员笔试历年典型题及考点精讲带答案详解.pdf
- 【劳动节营销方案】2023五一春日市集生活节“无所不集 摊开想象”主题活动策划方案.pptx
- 2024年04月浙江台州温岭市统计局拟招考聘用编外工作人员笔试历年典型题及考点精讲带答案详解.pdf
- 2024年04月浙江宁波象山县卫生健康系统招考聘用编外人员笔试历年典型题及考点精讲带答案详解.pdf
- 2024年04月河南省许昌魏都区先进制造业开发区(魏创公司)公开选聘工作人员笔试历年典型题及考点精讲带答案详解.pdf
文档评论(0)