Object-c中对象初始化

本文介绍了Objective-C中对象初始化的基本方法,包括使用alloc和new分配内存并初始化对象的过程。此外,还详细讲解了如何通过重写初始化方法实现对属性的具体设置,并提供了带参数初始化的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对象初始化的两种基本方法;[[类名 alloc] init]和[类名 new]

基本初始化

所有类都可以调用alloc类方法来分配内存,当程序调用某个类的alloc类方式时,系统会完成1.位该对象的所有实例变量分配内存空间2.将每个实例变量的内存空间都重置为0:所有的整形变量所在空间都重置为0,所有的浮点类型变量重置为0.0,所有的boolL类型变量都重置为NO,所有的指针类型变量都重置为nil。

使用alloc方式只是为对象分配空间,使用还必须进行初始化。

从功能上object-c的初始化方法和Java的构造器基本相同。Java在对象实例化时虽然只需要new,但是其也分为分配内存和初始化对象两部分

重写初始化方法实现对属性的目标初始化

#import<Foundation/Foundation.h>

@interface User;NSObject

@property (nonautomic,copy)NSString* name;

@property(nonautomic,assign)int  age;

@property(nonautomic,copy)NSString* address;

@end


#import “User.h”

@implementation User

-(id) init{

//重写父类的init方法

//调用父类的init方法进行初始化,将初始化得到的数值数值给self,如果self不为nil则表示初始化成功

if(self=[super init]){

self->_name=@"jack";

self->_age=20;

self->_address=@"shang hai"

}

return self;

}

@end


带参数的初始化

#import <Foundation/Foundation.h>

interface Car:NSObject

@property (nonatomic,copy) NSString* brand;

@property (nonatomic,copy)NSString* model;

@property(nonatomic,copy)NSString* color;

//定义带参数的初始化方法

-(id) initWitnBrand:(NSString*) brand model:(NSString*) model;

-(id) initWitnBrand:(NSString*) brand model:(NSString*) model color:(NSString*) color;

@end


#import "Car.h"

@implementation Car

-(id) init{

if(self=[super init]){

self->_brand=@"BMW";

self->_model=@"a1";

self->_color=@"blue";

}

return self;

}

-(id) initWitnBrand:(NSString*) brand model:(NSString*) mode{

self->_brand=brand;

self->_model=model;

self->_color=@"blue";

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值