Objective-C构造方法
构造方法在创建(实例化)对象的时候,自动调用的方法
带参构造方法
-(instancetype)initWith...
-
#import <Foundation/Foundation.h>
-
-
@interface Person : NSObject{
-
NSString* _name;
-
NSInteger _age;
-
}
-
//init方法是系统自带的,实现在NSObject类里
-
//自定义的构造方法需要显示申明
-
- (instancetype)initWithName:(NSString*)name;
-
- (instancetype)initWithName:(NSString*)name age:(NSInteger)age;
-
-(void)showMessage;
-
@end
-
-
@implementation Person
-
-(instancetype)init{
-
//self是一个指针 它表示当前调用该方法的对象本身
-
//super 用来调用父类方法的关键字
-
self = [super init];
-
if(self){
-
NSLog(@"系统自带的构造方法");
-
_name = @"no name";
-
_age = 0;
-
}
-
return self;
-
}
-
//自定义的需要显示申明
-
- (instancetype)initWithName:(NSString*)name{
-
self = [super init];
-
if(self){
-
NSLog(@"调用自定义的构造函数");
-
_name = name;
-
}
-
return self;
-
}
-
- (instancetype)initWithName:(NSString *)name age:(NSInteger)age{
-
self = [super init];
-
if(self){
-
_name = name;
-
_age = age;
-
}
-
return self;
-
}
-
- (void)showMessage{
-
NSLog(@"name:%@ age:%ld",_name,_age);
-
}
-
@end
-
-
int main(int argc, const char * argv[]) {
-
@autoreleasepool {
-
Person* p1 = [Person new];
-
Person* p2 = [[Person alloc] initWithName:@"dancer"];
-
Person* p3 = [[Person alloc] initWithName:@"XiaoMing" age:19];
-
[p1 showMessage];
-
[p2 showMessage];
-
[p3 showMessage];
-
}
-
return 0;
-
}
无参构造方法
init->NSObject
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgaakih
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01