08.黑马程序员-id指针、构造方法

一、 Id

1.    简介

万能指针,能指向任何OC对象相当于NSObject*

id类型的定义

typedef struct objc object{
   Class isa;
} *id;

2.    使用

//注意:id后面不要加上*

Id p = [Person new];

3.    局限性

调用一个不存在的方法,编译器会自动报错


二、 构造方法(用来初始化对象的方法,是个对象方法,-开头)


1.    对象的创建原理

New的拆分两部曲

分配内存(+alloc)

初始化(-init)

Person *p = [person alloc];

Person *p1 = [p init];

 

2.    Init方法的重写(想在对象创建完毕后,成员变量马上就有一些默认的值)

a.    一定要调用会super的init方法:初始化父类中声明的一些成员变量和其他属性

b.    如果对象初始化成功,才有必要进行接下来的初始化

c.     返回一个已经初始化完毕的对象

-  (id)init
{
    Self =[super init];
           
    If(self!=nil)
    {
         _age= 10;
    }

 return self;
}


等价于(建议写成这种样式)

-(id)init
{
     If(self = [super init])
     {
             _age= 10;
     }
     return self;
}


3.    自定义构造方法

自定义构造方法的规范

a.    一定是对象方法,一定以– 开头

b.    返回值一般是id类型

c.     方法名一般以initWith开头

- (void)initWithAge:(int)age
{
    if(self = [super init])
    {
        _age = age;
    }
    return selfl;
}

- (id)initWithName:(NSString *)name andAge:(int)age andNo:(int)no
{
    if(self = [super initWithName:name andAge:age])
    {
        _no = no;
    }
    return self;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值