new方法
Person *p = [Person new];
new做了三件事情
1.调用了+ alloc 方法
2.调用了- init 方法
3.返回对象的地地址
Person *p1 = [Person alloc];
alloc做了什么事:
1.开辟存储空间
2.将所有的属性设置为0
3.返回当前实例对象的地址
Person *p2 = [p1 init];
init做了什么事:
1.初始化成员变量 (重写init会实现),默认不会初始化
2.返回初始化后的实例对象地址
构造方法
init开头的方法, 我们称之为构造方法
构造方法的用途: 让某个对象一创建出来就拥有某些属性和值
1.必须先初始化父类, 再初始化子类
2.必须判断父类是否初始化成功,
3.初始化子类
4.返回当前对象的地址
- (instancetype)init
{
// 1.初始化父类
self = [super init];
// 2.判断父类是否初始化成功
if (self != nil) {
// 3.初始化子类
_age = 6;
}
// 4.返回地址
return self;
}
自定义构造方法
就是自定义一个init方法
1.是对象方法
2.返回值是id/instancetype
3.方法名称以init开头
// 注意: 自定义构造方法中的init后面的With的W一定要大写
- (instancetype)initwithAge:(int)age
{
if (self = [super init]) {
_age = age;
}
return self;
}
- (instancetype)initWithName:(NSString *)name
{
if (self =[super init]) {
_name = name;
}
return self;
}
- (instancetype)initWithAge:(int)age andName:(NSString *)name
{
if (self = [super init]) {
_age = age;
_name = name;
}
return self;
}
iOS分享技术群:2116705
[验证消息:分享技术]