⼀、实例变量可⻅度
实例变量的可⻅度
⼆、⽅法
⽅法分类
OC中的⽅法分两种:类⽅法和实例⽅法。
类⽅法:只能类使⽤,例如:+(id)alloc 注:类⽅法中不能使⽤
实例变量 实例⽅法:只能对象使⽤,例如: -(void)sayHi
⽅法名
删除:类型标识,返回类型,参数类型,参数名,空格。例如: replaceObjectAtIndex:withObject:
类中不能出现同名⽅法。
“ : ” 标识参数,不能省略。有冒号必须有参数。
赋值、取值⽅法
⽅法使⽤
[person sayHi];
在OC中没有”student调⽤sayHi“这种表述。
在OC中使⽤消息发送机制:[receiver message]。
正确表述:给student对象发送sayHi消息。
1、student接收到消息,即⽅法sayHi;
2、student找到sayHi⽅法,并执⾏。
setter、getter
在OC⾥,为实例变量赋值的⽅法称作setter (设置器)。
读取实例变量值的⽅法称作getter(访问器)。
我们之前写的那些赋值取值的⽅法都可以称作setter和getter
setter、getter的书写格式
OC⾥规定了setter和getter的书写格式。
如果⼀个实例变量是int age;或者int _age;
setter的书写格式如下:- (void)setAge:(int)age;即set+⾸字⺟⼤ 写的实例变量名(忽略下划线)。
getter的书写格式如下: - (int)age;即返回值类型与变量类型⼀ 致,⽅法名与实例变量名相同(忽略下划线)
与实例变量的关系
⽆论setter还是getter内部操作的是实例变量
每⼀个实例变量都需要⼀对setter和getter⽅法。
⾃定义初始化⽅法
-(id)init 这个初始化⽅法只能给实例变量设置默认值,不灵活。
-(id)initWithName: ⾃定义初始化⽅法,根据需求定义初始化⽅ 法。
#import
导⼊头⽂件,即:导⼊头⽂件中的内容到当前类。
#import “”导⼊⾃定义类,#import <>导⼊类库中的头⽂件。
功能类似C语⾔中的#include,但是可以避免头⽂件被重复导 ⼊。
容易出现循环导⼊头⽂件问题
@class
告诉编译器@class后的字符串作为类名使⽤,并未导⼊类的 接⼝内容。
有效避免嵌套循环导⼊