黑马程序员_OC点语法 id 构造方法复习
2014-10-02 19:28
309 查看
一 . id是万能指针等于 NSObject *,能指向和操作任何OC对象
id d = [person new];
d.age=10;
二. 构造方法:用来初始化对象的方法,是个对象方法,-开头
1.重写构造方法的目的:为了让对象创建出来,成员变量就会有一些固定的值
2.重写构造方法的注意点
1>.先调用父类的构造方法([super init])
2>.再进行子类内部成员变量的初始化
3.完整地创建一个可用的对象
1>.分配存储空间 +alloc
调用+alloc分配存储空间
Person *p1 = [Person alloc];
2>.初始化 -init
调用-init进行初始化
Person *p2 = [p1 init];
调用-init进行初始化
Person *p3 = [Person new];
重写-init方法
- (id)init
{
1.一定要调用回super的init方法:初始化父类中声明的一些成员变量和其他属性
self = [super init];当前对象 self
2.如果对象初始化成功,才有必要进行接下来的初始化
if (self !=nil)
{初始化成功
_age = 10;
}
3.返回一个已经初始化完毕的对象
return self;
}
简化
- (id)init
{
if ( self = [super init] )
{ //初始化成功
_age = 10;
}
// 3.返回一个已经初始化完毕的对象
return self;
}
经过初始化后,新创建对象的age属性就是10.
三. 自定义构造方法
自定义构造方法的规范
1.一定是对象方法,一定以 -开头
2.返回值一般是id类型
3.方法名一般以initWith开头
例:
- (id)initWithName:(NSString *)name;
- (id)initWithAge:(int)age;
- (id)initWithName:(NSString *)name andAge:(int)age;
- (id)initWithName:(NSString *)name
{
if ( self = [super init] )
{
_name = name;
}
return self;
}
- (id)initWithAge:(int)age
{
if ( self = [super init] )
{
_age = age;
}
return self;
}
- (id)initWithName:(NSString *)name andAge:(int)age
{
if ( self = [super init] )
{
_name = name;
_age = age;
}
return self;
}
如果父类中已经有方法实现,可以这样定义
// 父类的属性交给父类方法去处理,子类方法处理子类自己的属性
- (id)initWithName:(NSString *)name andAge:(int)age andNo:(int)no
{
//将name、age传递到父类方法中进行初始化
if ( self = [superinitWithName:name andAge:age])
{
_no = no;
}
return self;
id d = [person new];
d.age=10;
二. 构造方法:用来初始化对象的方法,是个对象方法,-开头
1.重写构造方法的目的:为了让对象创建出来,成员变量就会有一些固定的值
2.重写构造方法的注意点
1>.先调用父类的构造方法([super init])
2>.再进行子类内部成员变量的初始化
3.完整地创建一个可用的对象
1>.分配存储空间 +alloc
调用+alloc分配存储空间
Person *p1 = [Person alloc];
2>.初始化 -init
调用-init进行初始化
Person *p2 = [p1 init];
调用-init进行初始化
Person *p3 = [Person new];
重写-init方法
- (id)init
{
1.一定要调用回super的init方法:初始化父类中声明的一些成员变量和其他属性
self = [super init];当前对象 self
2.如果对象初始化成功,才有必要进行接下来的初始化
if (self !=nil)
{初始化成功
_age = 10;
}
3.返回一个已经初始化完毕的对象
return self;
}
简化
- (id)init
{
if ( self = [super init] )
{ //初始化成功
_age = 10;
}
// 3.返回一个已经初始化完毕的对象
return self;
}
经过初始化后,新创建对象的age属性就是10.
三. 自定义构造方法
自定义构造方法的规范
1.一定是对象方法,一定以 -开头
2.返回值一般是id类型
3.方法名一般以initWith开头
例:
- (id)initWithName:(NSString *)name;
- (id)initWithAge:(int)age;
- (id)initWithName:(NSString *)name andAge:(int)age;
- (id)initWithName:(NSString *)name
{
if ( self = [super init] )
{
_name = name;
}
return self;
}
- (id)initWithAge:(int)age
{
if ( self = [super init] )
{
_age = age;
}
return self;
}
- (id)initWithName:(NSString *)name andAge:(int)age
{
if ( self = [super init] )
{
_name = name;
_age = age;
}
return self;
}
如果父类中已经有方法实现,可以这样定义
// 父类的属性交给父类方法去处理,子类方法处理子类自己的属性
- (id)initWithName:(NSString *)name andAge:(int)age andNo:(int)no
{
//将name、age传递到父类方法中进行初始化
if ( self = [superinitWithName:name andAge:age])
{
_no = no;
}
return self;
相关文章推荐
- 黑马程序员_OC点语法 id 构造方法复习
- 黑马程序员_iOS开发之OC之面向对象之id语法、构造方法、@category分类、类本质、description方法和SEL数据类型
- 黑马程序员------OC基础-----点语法、id、构造方法、Category、成员变量作用域
- 黑马程序员--OC自学笔记---05点语法、@property、@synthesize、动态类型、id类型、响应方法、构造方法
- 黑马程序员——OC基础---核心语法(id,构造方法,Category,description,SEL)
- OC基础day5-点语法、property、编译器指令、id万能指针、类与类的判断、判断对象是否响应指定的方法、判断类中是否有这个方法、参数方法与响应、构造方法、synthesize
- 黑马程序员---iOS基础----OC中的点语法、构造方法
- OC中点语法、id类型和构造方法
- 黑马程序员——OC语言------id和构造方法
- 黑马程序员——OC语言学习——关键字id、构造方法、Category-分类、类的本质、 description方法、 SEL方法
- 黑马程序员——OC核心语法2之构造方法
- 黑马程序员 OC------- id类型: 构造方法学习
- 黑马程序员-OC语言核心语法(2)构造方法
- OC的特有语法-分类Category、 类的本质、description方法、SEL、NSLog输出增强、点语法、变量作用域、@property @synthesize关键字、Id、OC语言构造方法
- OC特有语法1—点语法,成员变量作用域,@property,id,构造方法,多文件编程
- 黑马程序员_OC构造方法和ID类型学习学习
- 黑马程序员——OC核心语法点语法,成员变量,@property和@synthetic,构造方法
- OC特有语法1—点语法,成员变量作用域,@property,id,构造方法,多文件编程
- IOS开发---OC语言-⑭id、构造方法、自定义构造方法
- 黑马程序员——入学Blog04----OC的构造方法