#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.方法调用的优先级:分类  --> 原来类 --> 父类
*/

 

posted on 2014-12-05 09:26  墓厄  阅读(220)  评论(0编辑  收藏  举报