oc中便利构造器的作用?

oc中便利构造器的作用?构造出来的方法,子类应该还缺一些成员变量,怎么去实现子类的声明,比如person有的,student一定有,可以继承自父类,而student私有的... oc中便利构造器的作用?构造出来的方法,子类应该还缺一些成员变量,怎么去实现子类的声明,比如person有的,student一定有,可以继承自父类,而student 私有的那部分,如何去声明? 展开
 我来答
山水阿锐
推荐于2016-12-01 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.3亿
展开全部
您好,写一个简单地便利构造器
+(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的时候,同时给属性变量赋值的类方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式