- 10
- 0
- 约5.19万字
- 约 46页
- 2015-11-01 发布于河南
- 举报
《Objective-C 2.0编程语言》.pdf
Objective-C 2.0 编程语言
简介
面向对象的开发环境至少会包含以下三个要素:
■一个支持库的面向对象的编程语言
■一个内容丰富对象库
■一系列的开发工具
本文档是关于这种面向对象开发环境的第一要素的,即编程语言及其运行时环
境。此文全面介绍Objective-C 编程语言,这也是学习第二要素的基础,以及学习
基于Mac 操作系统,使用Objective-C 编写的应用程序框架的基础。这种应用程
序框架以Cocoa 而闻名遐迩,开发Mac 和iPhone 应用程序的两个主要工具是
Xcode 和Interface Builder 。
Objective-C 是一种简单的计算机语言,但对复杂的面向对象编程方法却能自如应
对,它实际上是对ANSI C 标准语言的一个小小的扩充,但这种扩充却使它变得相
当强大。它对C 语言的扩充都是基于Smalltalk 的——最古老的面向对象编程语言
之一。Objective-C 的设计目的是给C 语言一个通过一种简单且直观的方式而实现
面向对象编程的能力。
此文档主要介绍面向对象的编程模型,这也是Objective-C 的根基,它集中介绍
Objective-C 对C 语言的扩展,而不是C 语言本身。使用Objective-C 的面向对象
的编程和使用ANSI C 的面向过程的编程有着很大的差异。
对象和类
对象
面向对象的程序都是围绕对象而构建。一个对象把数据和一些对这些数据的操作
捆绑在一起,这些操作被称为方法(Methods),而它们操作的那些数据被称为实例
变量(instance variables)。
在Objective-C 中,对象的实例变量属于对象的内部数据,通常要访问这些数据只
能通过对象的方法,还可以通过作用域指示符(scope directives)为一个类的子类或
别的对象指定访问实例变量的权限。就像一个函数隐藏局部变量一样,对象不但
隐藏实例变量,还会隐藏方法的实现。
Id 类型
在Objective-C 中,对象变量是一种独特的数据类型——id 类型。这种类型被定义
为指向对象的指针。实际是一个指向这种对象的实例变量的指针。就像C 语言中
的函数和数组一样,对象也是用地址来表示的,所有对象,不管它们的实例变量
或方法是什么,都属于一种类型——id 类型。
id anObject;
在Objective-C 中,id 取代了int 类型成为默认的数据类型(在标准C 里,如函数的
返回值,int 是默认的返回类型),关键字nil 被定义为空对象,也就是值为0 的对
象,Objective-C 其它的基本类型都在obj/objc.h 中定义。
动态类型匹配
id 类型是一种灵活的数据类型,除了指示它是一个对象外,并不能提供更多信
息。对象并不会完全相同,一个Rectangle 对象不会和一个表示位图的对象有相同
的实例变量和方法,有时程序可能需要一个对象的更多确切信息,如它包含那些
实例变量,可以执行那些操作等。但id 指示符却不能为编译器提供这方面的信
息,所以每个对象在运行时必须提供这些信息。能够做到这一点都是因为每个对
象都有一个isa 实例变量来标示这个对象所属于的类。所有的实例变量和方法都相
同的对象都是同一个类的成员。因此,动态类型匹配实际上发生在程序被执行
时。不论何时,只要需要,运行时系统就能够查明一个对象到底属于哪个类,而
这只需要查询对象的isa 实例变量就可以了。这个isa 指针还为对象提供了一种称
为“ 自省”(introspection)的功能。编译器会在数据机构中记录关于类定义的信息为
运行时环境所用。通过这种机制,可以判断一个对象是否提供了一个特定的方
法,也可以获取这个对象的super 类(supperclass)的名字。当然也可以通过静态类
型匹配为编译器提供有关对象所属类的信息,类名也可以作为类型名使用。
对象消息
消息语法
要让对象做些事情,必须向它发送消息,告诉它去执行一个方法。
在Objective-C 中,消息表达式被包含在一对中括号里:
[receiver message]
Receiver 是一个对象,而message 告诉这个对象要做什么,具体到代码里,消息就
是方法名字和传给这个方法的一些参数。一旦一个消息发出,运行时系统会为这
个对象选择正确的方法并启动它。
带有可变数量的参数也是可能的,其余的参数用逗号隔开,在下面的例子中,
这个方法传入一个必要参数group 和三个可选参数:
[receiver makeGroup: group, memberOne, memberTwo,
您可能关注的文档
- 《JBT 6143.1-2016 锥密封棉线编织胶管总成》.pdf
- 《JBT 6143.2-2016 锥密封90°棉线编织胶管总成》.pdf
- 《JBT 6143.3-2016 锥密封双90°棉线编织胶管总成》.pdf
- 《JBT 6143.4-2016 锥密封45°棉线编织胶管总成》.pdf
- 《JBT 7118-2016 YVF2系列(IP54)变频调速专用三相异步电动机 技术条件(机座号80~315)》.pdf
- 《JBT 7228-1194 风量调节阀》.pdf
- 《jbt6142.1-1992锥密封钢丝编织胶管 总成 》.pdf
- 《jbt6142.2-1992锥密封90°钢丝编织胶管 总成》.pdf
- 《jbt6142.3-1992锥密封双90°钢丝编织胶管 总成 》.pdf
- 《jbt6142.4-1992锥密封45°钢丝编织胶管 总成》.pdf
原创力文档

文档评论(0)