您的位置:首页 > 移动开发 > Objective-C

objective-c教程-基础1(interface)

2011-05-03 12:04 295 查看
Lesson 3. 类的定义

编程语言

2009年7月31日星期五

1

源文件

Source files

加入新的对象种类的方式:定义新的类

Objective-C



中,类的定义分为两个部分:

Interface:声明了类与父类的名字、方法和实例 变量

接口

Implementation:包含了方法的实现(真正意义 上的定义了类的行为)

实现

2009年7月31日星期五

2

源文件

编译器并不要求将接口与实现的代码分开到不同的文 件

一个文件可以同时声明和定义多个类 每一个类用一对接口/实现源文件来书写是习惯用法

这样的写法能更清楚地反应每一个类作为一个个体的 状态

2009年7月31日星期五

3

源文件 源文件的命名应与类名相一致

.h

接口文件以

为后缀名

.m

实现文件以

文件为后缀名

2009年7月31日星期五

4

接口

Interface

@interface

@end

接口的声明以

结束:

编译指令开始,以

指令

@interface ClassName : ItsSuperclass {

instance variable declarati*****

} method declarati***** @end

2009年7月31日星期五

5

接口

第一行:声明了要定义的类的名称 冒号后面指定了父类的名字 通过指定父类来确定新类在继承树中的位置
如果不指定父类的话,则新类被认为是一个根类,如

NSObject



2009年7月31日星期五

6

接口

大括号中所括的部分是实例变量的声明 实例变量构成了对象中的数据结构

Rectangle

类中的部分实例变量:

float width; float height; BOOL filled; NSColor
*fillColor;

2009年7月31日星期五

7

接口 方法的声明在大括号之后,

@end

指令之前 只有类对象能够使用的方法,类方法以+号开头:

+ alloc;

只有实例对象能够使用的方法,实例方法以-号开头:

- (void)display;

尽管并不常见,实例方法与类方法可以重名,因为它们 的使用者不同

2009年7月31日星期五

8

接口

访问器的命名规则: 假设声明如下实例变量:float radius;

getter - (float)radius;

setter

方法与实例变量同名,并有同样类型的返回值:

“set”,需要一个同样

方法名称是实例变量的名称前加

void: - (void)setRadius: (float)aRadius;

类型的传入参数,返回

2009年7月31日星期五

9

接口

返回值的默认类型

如果没有显式地指定返回值的类型,则方法默认返回

+ alloc;

id

2009年7月31日星期五

10

接口

如果方法中的参数多于一个,则参数依次在方法名中进行声 明,以冒号隔开

方法名被参数隔成一段一段,在声明中和消息表达式中都是 同一形式

- (void)setWidth:(float)width height:(float)height;

如果需要声明可变数目的参数,则用逗号和省略号来表示:

- makeGroup:group, ...;

2009年7月31日星期五

11

接口 任何其它源文件想要使用一个接口时,都要包含

include

(

)它

import

接口包含使用#

指令来进行:

import “Rectangle.h”

#

<>

“”,且需

如果要包含类库中的类接口,使用

要指定类在类库中的目录:

#import <UIKit/UIKit.h>

而不是

2009年7月31日星期五

12

接口

为了体现继承关系,子类的接口一般都默认已经包含 了父类的接口文件

当接口的定义中提到了没有包含到的类时,需要进行 额外的包含或者类名使用声明:

@class Circle,

Rectangle;

@class

Circle

Rectangle

使用

指令简单地告诉编译器





接下来的接口定义中将作为类名使用

2009年7月31日星期五

13

接口

@class

指令只声明了类名的使用以规避编译错误,并 未包含这些类的接口文件

在实现代码中若还需用到这些类中的细节定义,则需 要在实现文件中重新包含这些类

@class

指令可用于避免出现两个接口文件互相包含的 编译错误

2009年7月31日星期五

14

接口

小结:接口的作用

接口告诉用户它定义的类在继承树中是如何与别的 类连接的,而且对哪些类作了引用

接口告诉编译器它所定义的对象应当包含哪些实例 变量

接口告诉用户它有哪些方法可以被调用(仅供类实 现内部使用的方法不在接口中声明)

2009年7月31日星期五

15
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息