声明:个人笔记, 都是从别人博客抄来的。
变量:
OC中的所有实例变量默认都是私有的,也默认不能被类外部使用点语法直接访问。在为属性添加相应的get方法后才能使用点语法访问。
变量在接口部分声明的时候有有关键字可以控制变量的作用域:
1. @protected 变量可以在该类和所有的子类的方法内直接访问,默认都是被这个关键字声明
2. @private 变量只能在该类的方法内直接访问,子类的中的方法是不允许直接访问的
3. @public 变量可以被该类和子类以及其他类中的方法直接访问,模块也可以直接访问,在类外可以使用->访问,例如user->name,使用->有违封装的思想,所以建议少用
4. @package 对于64位图像,可以在实现该类的图像的任何地方访问这个实例变量。(有点抽象,很少用)
OC中的静态变量可以在该文件后的所有地方访问。
static NSString *staticString = @"static";
则在该语句后就可以直接使用该变量, 在该文件外则不能访问。
方法:
1. 静态方法,即类方法
使用 ‘+’ 声明的方法, 如方法:+ (id)allocWithZone:(struct _NSZone *)zone;
可以通过类直接调用,不需要声明对象实例;但是对象实例不能调用静态方法。
2. public方法
使用 ‘-’ 声明的方法, 如方法: - (id)init;
该方法能被对象实例调用, 不能被类直接调用
3. private方法
通过category可以实现私有方法,在类的实现文件中声明一个类的category,里面的方法就是私有方法,
类的对象不能调用,由于声明是在类的实现文件里,所以子类不能重写。因而类似于private方法。