oc中便利构造器的作用?
oc中便利构造器的作用?构造出来的方法,子类应该还缺一些成员变量,怎么去实现子类的声明,比如person有的,student一定有,可以继承自父类,而student私有的...
oc中便利构造器的作用?构造出来的方法,子类应该还缺一些成员变量,怎么去实现子类的声明,比如person有的,student一定有,可以继承自父类,而student 私有的那部分,如何去声明?
展开
2个回答
展开全部
您好,写一个简单地便利构造器
+(Student *)studntWithName :(NSString *)aName andAge:(int)anAge
{
Student *stu=[Student alloc]initWithName :aName andAge:anAge
return stu;
}
//1..h声明文件中
#import <Foundation/Foundation.h>
@interface Person :NSObject
{
NSString * name;//名字
int age;//年龄
}
@property (assign,nonatomic) NSString * name;//声明名字访问属性
@property (assign,nonatomic) int age;//声明年龄访问属性
-(id)initWith:(NSString *)newName withAge:(int)newAge;//声明构造函数
-(void)sayhi;//打招呼方式
@end
//2..m实现文件中
@implementation Person
@synthesize name;//实现name属性
@synthesize age;//实现age属性
-(id)initWith:(NSString *)newName withAge:(int)newAge;//实现构造函数
{
self =[super init];//调用父类super init方法
if(self)
{
[self setName:newName];另一种调用方法 self.name:newName;
[self setAge:newAge];//另一种调用方法 self.Age:newAge;
}
return self;
/*构造函数一般书写方式:
self =[super init];
if(self)
{
函数体
}
return self;
*/
}
-(void)sayhi
{
NSLog(@"hi,My name is %@,I'm %d old!",name,age);
}
@end
//3.主函数中
#import <Person.h>
int main(int argc, const char * argv[])
{
Person * xiaozhang=[[Person alloc]initWith:@"小张" withAge:25];//构造函数调用
[xiaozhang sayhi];//调用sayhi方法
return 0;
}
+(Student *)studntWithName :(NSString *)aName andAge:(int)anAge
{
Student *stu=[Student alloc]initWithName :aName andAge:anAge
return stu;
}
//1..h声明文件中
#import <Foundation/Foundation.h>
@interface Person :NSObject
{
NSString * name;//名字
int age;//年龄
}
@property (assign,nonatomic) NSString * name;//声明名字访问属性
@property (assign,nonatomic) int age;//声明年龄访问属性
-(id)initWith:(NSString *)newName withAge:(int)newAge;//声明构造函数
-(void)sayhi;//打招呼方式
@end
//2..m实现文件中
@implementation Person
@synthesize name;//实现name属性
@synthesize age;//实现age属性
-(id)initWith:(NSString *)newName withAge:(int)newAge;//实现构造函数
{
self =[super init];//调用父类super init方法
if(self)
{
[self setName:newName];另一种调用方法 self.name:newName;
[self setAge:newAge];//另一种调用方法 self.Age:newAge;
}
return self;
/*构造函数一般书写方式:
self =[super init];
if(self)
{
函数体
}
return self;
*/
}
-(void)sayhi
{
NSLog(@"hi,My name is %@,I'm %d old!",name,age);
}
@end
//3.主函数中
#import <Person.h>
int main(int argc, const char * argv[])
{
Person * xiaozhang=[[Person alloc]initWith:@"小张" withAge:25];//构造函数调用
[xiaozhang sayhi];//调用sayhi方法
return 0;
}
追问
oc中便利构造器的作用,我更想知道他的作用,至于写法可以背下格式。
2016-03-08 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
1、便利构造器是一种快速创建对象的方式。它本质上是把初始化方法做了一次封装,方便外界使用
2、便利构造器是一个类方法(以+开头)类似java的构造方法。指的是在init的时候,同时给属性变量赋值的类方法。
2、便利构造器是一个类方法(以+开头)类似java的构造方法。指的是在init的时候,同时给属性变量赋值的类方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询