OC构造函数详解

本文详细介绍了Objective-C中创建对象的两种方法,包括`new`关键字的工作原理和`alloc/init`的组合使用。重点讨论了构造方法的概念,强调了重写父类构造方法或添加新初始化方法的必要条件,如调用`super`的初始化方法、返回`self`以及初始化成员变量。此外,还列举了构造方法的不同格式,并解释了初始化方法的调用过程以及`isa`指针的作用。最后,提供了代码示例来验证理论知识。
摘要由CSDN通过智能技术生成

1、创建对象的两种方法

(1)当用“类名 *p=[类名 new]”这种形式创建对象。例如

Person*p=[Personnew];  其中的new关键字其实是父类NSObject的一个创建对象的方法,返回值为id类型;可以完整的创建一个可用的对象:1、先分配存储空间  +alloc  2、再初始化 -init

 new方法就相当于先用类名调用NSObject类的类方法+alloc分配存储空间,相当于创建了一个类的对象 再调用根类的初始化方法-init进行初始化。

(2)方法1相当于用“类名 *p=[[类名alloc]init]”就是说:

Person*p=[Personnew]; 就相当于Person *p=[[Person alloc] init];

注意:alloc和init都返回id类型。

2、构造方法概念:用来初始化对象的方法,是个对象方法,以-开头。例如init方法就是一个构造方法。

3、重写父类构造方法或为类添加新的初始化构造方法的几个必不可少的条件:

(1)一定要调用父类super的初始化方法。一般直接继承NSObject的类都要调用super的init方法,[superinit]返回的是当前的OC对象,调用super的init方法的目的就是初始化从父类继承而来的一些成员变量和其他属性。例如对象内部的isa指针是从父类NSObject继承而来的,对象创建后调用了从NSObject继承来的对象方法init方法之后就把创建自己的类赋给自己内部的isa指针,等于说初始化了从父类NSObject继承而来的isa指针。继承自其他类的更容易理解,直接把子类初始化方法中的形参一一赋给的父

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值