* id是指万能指针,能指向\操纵任何OC对象;*
注意:写id的时候不要写*;
局限性:调用一个不存在的方法,编译器会马上报错!
例如:
Person *p = [Person new];
NSObject *n= [Person new];
Id d = [Person new];
构造方法
完整的创建一个可用对象分为两步:
1>分配存储空间 +alloc
2>初始化 -init
New方法是创建一个对象的方法,[Person new]是一个类方法。
构造方法的用途是用来初始化对象的方法,是一个以“-”开头的对象方法(默认初始化完了之后的值都是0)
Person *p = [[Person alloc] init];
例题:
每个Person对象创建出来,它的age都是10.
重写init构造方法条件
1> 一定要调用回super的init方法:初始化父类中声明的一些成员变量和其他属性。
2>如果对象初始化成功,才有必要进行下来的初始化
3> 然后返回初始化的数值
代码演示:
运行结果如下
构造方法的注意点:
1> 先调用父类的构造方法([super init])
2> 在进行子类内部成员变量的初始化
自定义构造方法:
1 、命名规范
1> 一定是对象方法,一定以“-”开头
2> 返回值一般是id类型
3> 方法名一般以init开头
2 、 自定义构造方法的用途:初始化值
1> 当父类中的成员变量存在,我们仅仅需要直接将需要初始化的值直接传到父类中初始化即可
2> 父类的属性给父类方法处理,子类仅需要处理自己的属性即可