类
1.obj-c中没有private的概念,可认为全是public的
2.类的类型成员 Type Member
1)实例变量 instance variable 不能被外部访问
2 ) 属性 property 编译器会为属性定义一个getter方法:propertyName,一个setter方法:setPropertyName,和一 个实例变量_propertyName,如果属性被定义成只读属性,则只有getter方法。
3)除了init和dealloc方法内,使用实例变量来访问,其他一律使用属性来访问,类内也使用self.属性 访问
3.类方法和实例方法,方法前减号为实例方法,方法前加号为类方法。
类方法可以直接调用,不需要创建类的实例,而实例方法只能通过类的实例对象才能调用。
4.方法的调用,在obj-c中被称为消息机制,写在中括号内 ,eg: [class foo];
5.类声明以 @interface 类名:继承名 开头,以 @end 结尾,类实现以@implementation 类名 开头,以 @end 结尾;
6.类的创建需要两步
1)alloc 请求内存分配,并把所有属性置零,指针置空
2)init 初始化,可以根据参数需要自定义初始化方法,需要前置调用父类的初始化器 [super init]
3) new == alloc + init 无参数版本
7.对象析构器 dealloc 在释放对象内存前自动调用,无法手工调用,子类的dealloc会调用父类的dealloc(后置调用)
8.每个类都有且只有1个基类,NSObject 是所有类的根类。
子类会自动继承基类的 实例变量,属性,实例方法和类方法
9.多态 :子类在父类统一的接口下,通过重写方法来进行不同的操作行为
self具有多态性,可以指向不同子类
super没有多态性,仅指向当前父类
10.尽量避免在父类的init和dealloc中调用子类重写的方法
网友评论