#import <Foundation/Foundation.h> #import "Person.h" //构造方法:用来初始化对象的方法,是个对象方法,-开头 int main(){ //Person *p = [Person new]; /* 完整地创建一个可用的对象 1.分配存储空间 +alloc 2.初始化 -init */ //1.调用+alloc分配存储空间 //Person *p1 = [Person alloc]; //2.调用-init进行初始化 //Person *p2 = [p1 init]; //调用init进行初始化 Person *p3 = [[Person alloc] init]; return 0; } //重写-init方法 #import "Person.h" @implementation Person /* - (id)init { //1.一定要调用回super的init方法:初始化父类中声明的一些成员变量和其他属性 self = [super init]; //2.如果对象初始化成功,才有必要进行接下来的初始化 if(self != nif){ //初始化成功 _age = 10; } //3.返回一个已经初始化完毕的对象 return self; } */ - (id)init { //1.一定要调用回super的init方法:初始化父类中声明的一些成员变量和其他属性 //2.如果对象初始化成功,才有必要进行接下来的初始化 if( self = [super init] ){ //初始化成功 _age = 10; } //3.返回一个已经初始化完毕的对象 return self; } @end /* 自定义够着方法的规范 1.一定是对象方法,一定以 - 开头 2.返回一般是id类型 3.方法名一般以init开头 */ /* 分类的作用:在不改变原来类内容的基础上,可以为类增加一些方法 使用注意: 1.分类只能增加方法,不能增加成员变量 2.分类方法实现中可以访问原来类中声明的成员变量 3.分类可以重新实现原来类中的方法,但是会覆盖掉原来的方法,会导致原来的方法没法再使用 4.方法调用的优先级:分类 --> 原来类 --> 父类 */