构造方法

构造方法:用来初始化对象的方法,是一个对象方法,减号开头(—init)
【Person new】的创建过程:
1.分配存储空间 +alloc(类方法)
Person* p1 = 【Person alloc】; 返回一个Person类型的新对象并分配存储空间,但此时不可用,然后调用-init进行初始化(初始化都为0),-init就是构造方法
Person* p2 = 【p1 init】;
2.初始化   -init(对象方法)
【【Person alloc】 init】;


#import <Foundation/Foundation.h>


//构造方法:用来初始化对象的方法,是个对象方法,-减号开头


@interface Person : NSObject

@property int age;

//@property会自动创建实例变量_age,并且自动创建settergetter方法,

//settergetter方法,若果有一个,则编译器会自动创建另一个方法

//-(void)setAge:(int)age


@end

@implementation Person

//-(void)setAge:(int)age{

//此时setter方法只是创建了并不做任何工作

//}


-(id)init

{

    //一定要调用回superinit方法:初始化父类中声明的一些成员变量和其他属性

    if (self=[super init])//当前对象selfself不为空进入循环;此处为C语言特性

    {

        _age=10;

    }

    //返回一个已经初始化的对象

    return self;

}

@end


int main(int argc, const char * argv[])

{

    //[Person* p = [Person new];

    /*

     完整地创建一个可用的对象

     1.分配存储空间  +alloc方法

     2.初始化  -init 方法,把实例变量初始化为0-init为父类NSObject的方法

     */


    Person* p1 = [[Person alloc] init];

    //id为万能指针,可以认为(id*);

    id p2 = [[Person alloc] init];

    

    //p.age=20;

    

    NSLog(@"%d",p1.age);

    

    return 0;

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值