构造方法
是什么?
对象初始化时执行的方法.(方法,对象的方法)
有什么用?
初始化一个对象
怎么用?
重写
自定义构造方法
子类自定义
//
// main.m
// 02构造方法
#import <Foundation/Foundation.h>
#import "Person.h"
#import "zhangSan.h"
int main(int argc, const char * argv[]) {
// Person *per=[Person new];
// [per haha];
// Person *per1=[Person alloc];
// Person *per2=[per1 init];
// [per2 haha];
// 自定义构造方法
Person *per=[[Person alloc] initName:@"张三" Age:20];
NSLog(@"姓名:%@;年龄:%d",per.name,per.age);
// 重写.仅仅重写代码
// Person *per=[Person alloc];
// id per2=[per init];
// NSLog(@"姓名:%@;年龄:%d",((Person *)per2).name,((Person *)per2).age);
//
// 子类中自定义方法
zhangSan *zs=[[zhangSan alloc] initColor:@"紫色"];
NSLog(@"%@",zs.color);
return 0;
}
//
// zhangSan.h
// 02构造方法
#import "Person.h"
@interface zhangSan : Person
@property NSString *color;
-(id)initColor:(NSString *)color;
@end
//
// zhangSan.m
// 02构造方法
#import "zhangSan.h"
#import "Person.h"
@implementation zhangSan
//子类自定义构造方法
-(id)initColor:(NSString *)color{
self=[super init];
_color=color;
return self;
}
@end
//
// Person.h
// 02构造方法
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property NSString *name;
@property int age;
//-(void)haha;
-(id)initName:(NSString *)name Age:(int)age;
//-(id)init;
@end
//
// Person.m
// 02构造方法
#import "Person.h"
@implementation Person
//-(void)haha{
// NSLog(@"haha");
//}
//自定义构造方法
-(id)initName:(NSString *)name Age:(int)age{
self=[super init];
_name=name;
_age=age;
return self;
}
//重写
//-(id)init{
// self = [super init];
// _name=@"逗比";
// _age=10;
// return self;
//}
@end
什么时候用?
需要根据需求初始化对象.
特点?
|
|