f(sixleaves) = sixleaves

重剑无锋 大巧不工

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  95 随笔 :: 0 文章 :: 7 评论 :: 0 Trackbacks
 1 #import <Foundation/Foundation.h>
 2 
 3 
 4 /*
 5 需求:
 6 由于init构造方法不能传递参数进去。对于初始化成员变量不够灵活,只能写死。
 7 所以我们可以自己定义构造方法来初始化对象。需要遵守几个规则,让人一看就知道
 8 是构造方法而且不会出错。
 9 
10 掌握:
11 自定构造方法的规范(类型、返回值、名称)
12 1.类型:构造方法一定是对象方法,一“-”号开头。
13 2.返回值:构造方法的返回值是id
14 3.名称:构造方法一般都以initWith开头,表示用什么来初始化。
15 */
16 
17 
18 @interface Person : NSObject
19 @property NSString * name;
20 @property int age;
21 @end
22 
23 @implementation Person
24 
25 // overrid
26 - (id)init
27 {
28 
29     if (self = [super init]) {
30 
31         _name = @"jack";
32         _age = 1;
33     }
34     return self;
35 }
36 
37 //自定义构造方法
38 - (id)initWithName:(NSString *)name
39 {
40 
41     if (self = [super init]) {
42 
43         _name = name;
44     }
45     return self;
46 }
47 
48 - (id)initWithAge:(int)age
49 {
50 
51     if (self = [super init]) {
52         _age = age;
53     }
54     return self;
55 }
56 
57 - (id)initWithName:(NSString *)name andAge:(int)age
58 {
59 
60     if (self = [super init]) {
61 
62         _name = name;
63         _age = age;
64     }
65     return self;
66 }
67 
68 @end
69 
70 int main() {
71 
72 
73     Person *p = [[Person alloc] initWithName:@"suweipeng" andAge:23];
74     NSLog(@"person's name is:%@, age is:%i", p.name, p.age);
75 
76     return 0;
77 }
posted on 2015-05-02 14:29 swp 阅读(110) 评论(0)  编辑 收藏 引用 所属分类: objective-c

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理