第7章 类(Objective-C程序设计)

7.1 分离接口和实现文件

通常,类的声明(@interface部分)要放在它自己的名为class.h的文件中,而类的定义(@implementation部分)通常放在相同名称的文件中,但扩展名要使用.m。通过在.m中导入.h文件,使编译器知道为当前类声明的类和方法,同时还能确保这两个文件的一致性。

需要注意,导入的文件要用一对引号“”引起来,而不是<>。双引号适用于本地文件,而不是系统文件。这样编译器就知道在哪里能够找到指定的文件。

7.2 合成存取方法

从Objective-C 2.0开始,可自动生成设值方法和取值方法(统称为存取方法)。第一步是在接口文件中使用@property指令标识属性;第二步,在实现部分使用@synthesize指令即可。

如果使用了@property指令,就不需要在实现部分声明相应的实例变量。

其实并不需要使用@synthesize指令,使用@property就够了。编译器会自动为你生成setter和getter方法。但是,注意,如果你不适用@synthesize,那么编译器生成的实例变量会以下划线(_)字符作为其名称的第一个字符。

7.3 使用点运算符访问属性

一般格式如下:

instance.property

instance.property = value;  //对属性赋值

7.4 具有多个参数的方法

通过列出每个连续的参数并用冒号将其连接起来,就可以定义一个接收多个参数的方法。用冒号连接的方法将成为这个方法名的一部分。

-(void) setTo: (int)  n over: (int) d;

7.5 局部变量

局部变量是基本的C数据类型,没有默认的初始值,所以在使用之前要先赋值。

方法的参数名也是局部变量。执行方法时,通过方法传递的任何参数都被复制到局部变量中。因为方法使用参数的副本,所以不能改变通过方法传递的原值。

static关键字:在变量声明前加上static关键字,可以使局部变量保留多次调用一个方法所得的值。

static int hitCount = 0; 

声明整数hitCount是一个静态变量。和其他基本数据类型的局部变量不同,静态变量的初始值为0,所以前面显示的初始化是多余的。此外,它们只在程序开始执行时初始化一次,并且在多次调用方法时保存这些数值。

1 -(int) showPage
2 {
3     static int pageCount = 0;
4     ...
5     ++pageCount;
6     ...
7     return pageCount;
8 }

pageCount可用于记录该方法的调用次数。

只能在定义静态变量和局部变量的方法中访问这些变量。

 7.6 self关键字

关键字self用来指明对象是当前消息的接收者。

posted @ 2018-01-28 22:54  此女子  阅读(105)  评论(0编辑  收藏  举报