f(sixleaves) = sixleaves

重剑无锋 大巧不工

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  95 随笔 :: 0 文章 :: 7 评论 :: 0 Trackbacks
 1 #import <Foundation/Foundation.h>
 2 
 3 @interface Person : NSObject
 4 {
 5     int _age;
 6     @private
 7     int _fuck;
 8 }
 9 + (void)test;
10 + (void)test1;
11 - (void)test1;
12 - (void)test;
13 - (void)modify;
14 - (int)age;
15 @end
16 
17 @implementation Person
18 + (void)test
19 {
20     [self test1];
21 }
22 + (void)test1
23 {
24     NSLog(@"Called Class Method test1");
25 }
26 - (void)test1
27 {
28     NSLog(@"Called Instance Method test1");
29 }
30 - (void)test
31 {
32     [self test1];
33 }
34 
35 - (void)modify
36 {
37     self->_age = 10;
38     self->_fuck = 20;
39 }
40 
41 // error 编译阶段就会出错。
42 //+ (void)modify
43 //{
44 //    self->_age = 10;
45 //}
46 
47 - (int)age
48 {
49     return _age;
50 }
51 
52 - (int)fuck
53 {
54     return _fuck;
55 }
56 @end
57 
58 int main() {
59     
60     Person *p = [Person new];
61     [p test]; // 输出 Called Instance Method test1
62     [Person test]; // Called Class Method test1.由以上两句可知,self指向,其所在方法的调用对象(类也是个对象)。
63     [p modify];
64     
65     int a = p.age;
66     int f = p.fuck;
67     NSLog(@"a = %d,f = %d", a, f);
68     
69     //[Person modify]; //错误,因为self指向的是类对象,而类对象本身并不存在_age这个成员变量。
70     
71     
72     return 0;
73 }
74 
75 /*总结:
     self的作用:
76  1.self指针能在对象方法中访问对象的成员变量。(无论该成员变量的权限是private、protected、public都可以) 
      2.self指针能调用类方法或对象方法,具体看self指向类对象还是实例对象。
     self的编程思想:
      1.在方法中想调用其他方法时候。
      2.当成员变量与set方法的形参同名时候,如果不想改变成员变量名字。可以用self把成员变量和形参分开。

77  self的使用注意:.self指针指向的是调用当前方法的对象。(类也是对象,叫做类对象)
78  */
posted on 2015-04-30 14:47 swp 阅读(142) 评论(0)  编辑 收藏 引用 所属分类: objective-c

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