oc初始化方法,便利构造器

不多说 先上代码:

一。初始化方法

在Teacher.h 文件中先定义


-(id)init;

-(id)init:(NSString *)name;

然后在Teacher.m文件中实现:


-(id)init{   //无参数的初始化方法

    if(self=[super init]){   //优先调用父类的 初始化方法

     }

  return self;   

}

-(id)initWithName:(NSString *)name{   //一个参数的初始化方法

    if(self=[super init]){

       _name=name;

     }

  return self;   

}

我理解的初始化方法就类似于java中的构造方法,在这里 第一个init方法 我认为是重写了父类的init方法

然后初始化一个没有参数的类


第二个初始化方法是带了一个参数,然后把这个参数传给对象,即把名字这个形参传给实例变量



其实初始化方法可以任意定义,它就是要我们在第一次初始化对象的时候调用的,可以按照自己的需求自定义


特点:1.是对象的方法以‘-’ 开头

           2.返回值类型一般式id  (id代表任意类型)

           3.一般定义名字的时候是以init开头

           4.可以带0个或者是多个参数

           5.优先执行父类的初始化方法,然后再给本身赋值,返回self(self只本类,super 调用父类的属性或方法的关键字)

(补充:定义变量或者方法的时候,一般采用驼峰命名法,要求见名知意,比如:initWithName   解释就是:初始化 带着一个名字)

           6.在对象 的生命周期只声明一次

  二 、便利构造器

直接上代码:

在Teacer.h里添加定义

+(id)teacherWithName:(NSString *)name;

在Teacher.m里添加实现

+(id)teacherWithName:(NSString *)name{

  

     Teacher *t=[[Teacher alloc]initWithName:name];

      return t;

}


ps: “-”和“+”修饰的方法的异同:   “-”方法是实例方法,只有实例化 的对象可以调用

                                                     “+”方法是类方法,无需实例化,直接用类名就可以直接访问


(个人感觉有点像java里边 用Static修饰的方法,可以用类名直接访问,印象最深的就是自己在大学期间做jdbc的时候,把链接数据库的代码封装成了静态类和静态方法,这样做了封装方便调用)


 便利构造器封装了对象的创建过程,进一步简化了对象创建的步骤


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值