C16_OC06-id关键字和构造方法
来源:互联网 发布:不良信息过滤软件 编辑:程序博客网 时间:2024/05/14 06:17
1.id关键字
#import <Foundation/Foundation.h>@interface Persion : NSObject @property NSString * name; @property id obj; //同@property NSObject * obj;这个属性必须是一个OC对象 - (void) show:(id)_obj; //方法的参数为id类型,即任意的NSObject对象@end@implementation Persion @synthesize name; @synthesize obj; - (void) show:(id)_obj{ NSLog(@"参数obj:%@", _obj); }@endint main(int argc, const char * argv[]){ // NSObject * p = [Persion new]; id p = [Persion new]; //p.name = @"兰草"; //似乎因为NSobject没有name属性,这样不好使 [p setName:@"菊花"]; //这样却好使 //NSLog(@"植物:%@", p.name); NSLog(@"植物:%@", [p name]); [p setObj:@"这个是id属性"]; //字符串是NSString对象 NSLog(@"id属性obj:%@", [p obj]); [p setObj:[NSNumber numberWithInt:2234]]; //数字对象类型 NSLog(@"id属性obj:%@", [p obj]); [p show:[NSString stringWithFormat:@"这是id参数"]]; return 0;}
2.构造方法
#import <Foundation/Foundation.h>@interface Persion : NSObject { NSString * _name; } @property NSString * name; //OC对象的构造方法是init,自定义构造方法命名以initWithXxx格式 - (id) initWithName:(NSString *)name;@end@interface Student : Persion /** 继承了一个_name、一个setName/getName、一个initWithName、init **/@end@implementation Persion @synthesize name = _name; /** 重写构造方法 原则:先初始化父类 **/ - (id)init{ if (self = [super init]){ //认定这是构造方法内OC的固定写法 //这里执行业务 _name = @"Heeee"; } return self; //初始化结束,返回自身对象实例 } /** 自定义构造方法 **/ - (id) initWithName:(NSString *)name{ if (self = [super init]) { _name = name; } return self; }@end@implementation Student /** 继承了父类的动态方法 **/@endint main(int argc, const char * argv[]){ // NSObject * p = [Persion new]; Persion * p = [Persion new]; p.name = @"Alizee"; NSLog(@"P的Name:%@", p.name); Persion * per1 = [Persion alloc]; //分配内存空间 Persion * per2 = [per1 init]; //执行构造方法,初始化 per2.name = @"Eminem"; NSLog(@"Per的Name:%@", per2.name); Persion * persi = [[Persion alloc] init]; [persi setName:@"Tupac"]; NSLog(@"Persi的Name:%@", persi.name); Persion * persion = [[Persion alloc] initWithName:@"Michael"]; NSLog(@"Persion的Name:%@", persion.name); Student * s = [[Student alloc] init]; s.name = @"Student"; NSLog(@"S的Name:%@", s.name); Student * student = [[Student alloc] initWithName:@"Manson"]; NSLog(@"Student的Name:%@", student.name); return 0;}
- end
0 0
- C16_OC06-id关键字和构造方法
- oc中的id关键字和构造方法
- OC学习笔记04--id关键字与构造方法
- OC关键字@property、@synthesize和id类型、构造方法、分类categary、类的本质、description方法、SEL消息机制
- OC--Id和构造方法
- JavaScript - 构造方法和this关键字使用
- 继承--构造方法和this关键字
- 构造方法和static关键字的使用
- java详解 --- 构造方法和static关键字
- java -private,this,static关键字 和构造方法,final关键字
- instancetype和id关键字
- PHP的构造方法,析构方法和this关键字
- 黑马程序员_OC构造方法和ID类型学习学习
- OC中点语法、id类型和构造方法
- 黑马程序员——OC语言------id和构造方法
- java中构造方法和this,static关键字
- JAVA面向对象2:构造方法和this关键字
- 构造方法与this关键字
- MYSQL 分页
- Django url解析出现unicode编码错误
- DockPanel
- 如何才能培养孩子良好的脾气秉性!
- MYSQL---时间
- C16_OC06-id关键字和构造方法
- OCP-1Z0-051 第63题 order by 应用
- Git详解之二:Git基础
- bat关闭指定窗口
- 梯度下降算法(Gradient Descent)
- NOTE 4----linkserver的创建
- 参加远光面试反思--阴沟翻船记
- zoj 3780 Paint the Grid Again (拓扑排序)
- 对技术改变世界的思考