OC2(初始化方法)
1,继承的特点
①:继承的根类是NSObject
②:继承的上一层是父类,下一层是子类
③:继承具有传递性,A继承于B,B继承于C,A具有B和C特征和行为
④:继承是单向的,不能相互继承
⑤:如果子类不满父类方法的实现,可以从写父类的方法
⑥:把公共的方法和实例变量写在父类里面,子类只需要写自己独有的实例变量和方法
2,属性和点语法:属性是一对setter、getter方法,声明属性关键字是@property,实现属性的关键字是@synthesize;
3,super:是⼀个编译器指 令,不是对象,向super发送消息,会执⾏⽗类中的⽅法
4,初始化方法:是实例方法,返回值是instancetype,参数个数可以自己给定,以init开头
- (instancetype)initWithName:(NSString *)name gender:(NSString *)gender;
4,初始化方法的内部实现有三步:
①:向super发送出事话消息,将从父类中继承过来的实例变量初始化
②:初始化自身独有的实例变量
③:将完成初始化之后的对象返回出去
+ (Person *)personWithName:(NSString *)name age:(NSInteger)age gender:(NSString *)gender;
5,一个类的初始化方法可以有多种,但是一个对象的生命周期中,初始化方法只能用一次
6,便利构造器:便利构造器封装了alloc 和初始化方法,是类方法,返回值类型为本类实例对象,方法名以类名开头,参数个数由自己指定。
7、读写性控制、原⼦性控制、语义设 置。 (1)、读写性,readwrite(默认) readonly setter= getter= (2)、原⼦性,nonatomic(常用) atomic (默认),atomic 可以保证实例变量在多线程访问下是安全 的,但是会消耗⼤量的cpu性能。所以使 ⽤nonatomic。 (3)、assign ⾮对象类型。retain 对象类 型。copy 对象类型,属性的类要遵守 NSCopying协议,并且实现协议⽅法。因 为不同的语义设置会影响属性对应的 setter、getter⽅法的内部实现。
8,点语法,对象通过点语法可以直接访问属性对应的setter、getter⽅法。等号左边如果有赋值的含义,点语法相当于 setter。单独出现或者出现等号右边,相当 于getter⽅法。