第2章 Objective - C程序设计
2.1对象与消息
2.1.1消息表达式
id类型的变量可以存放任何数据类型的对象
id obj;
向obj 发送msg消息
[obj msg]
[obj msg] 是一个消息表达式,obj(receiver)是一个对象,消息 msg告诉它要去做什么。请求一个实例对象执行某个操作时,你就需要给他发送一个消息,objective-C允许嵌套消息表达式,每个消息表达式的返回值都可以作为消息的receiver。
消息由消息关键字构成,消息关键字的命名规则同变量命名一样。
消息中可以带有参数,没有参数的消息就只有消息名
2.1.2 消息选择器
函数是通过函数名来区分的,消息则是通过消息名来区分的,消息名又称为消息选择器,选择器或者方法。
2.1.3实例变量的生成和初始化
声明一个id类型的变量时,该变量并不指向任何对象。因此,在使用一个对象之前,首先需要把内部丰满内部结构,通过调用类的构造函数来生成对象,成为一个非空的类。
Objective-C通过向类发送消息来创建一个对象。
[类名 alloc]
alloc执行后,实例就生成了,但是这个实例是空的,alloc只完成了对象所需要储存空间的分配,但没有进行初始化。初始化对象的方法叫做初始化方法。
[ [类名 alloc] init]
对象生成后只会调用一次初始化方法,需要重置数据则需要写一个reset函数
2.2类的定义
2.2.1类的接口声明
Objective-C中的接口和实现是分离开的
@interface 类名 : 父类名{
实例变量的定义;
}
方法声明;
@end //
Objective-C中所有的编译指令都是以@开头,和C语言的字符串作区分
Objective-C的类名首字母答谢,方法名和实例变量名都是小写字母开头
类名不能和变量名以及方法名相同
2.2.2类的实现·
@implement 类名
方法的定义 .........
@end //
@interface Volume:NSObject{
int val;
int min,max;
}
- (id)initWithMin:(int)a max:(int)b step;(int)s;
- (int)value;
- (id)up;
- (id)down;
@end//
多文件编译,obejctive-C中的每一个类都会分成.h和.m文件,称为接口文件和实现文件