06-self关键字

来源:互联网 发布:linux ping 100个包 编辑:程序博客网 时间:2024/04/29 20:04

一、OC中的self既可以用在动态方法中,也可以用在静态方法中

1.self在动态方法中


 1 @implementation Student 2  3 - (void)test2 { 4  5 } 6  7 - (void)test3 { 8     [self test2]; 9 }10 11 @end

* 在第3行、第8行定义了2个动态方法

* 在第8行使用了self关键字,这里的self代表着调用test3方法的某个Student对象

* 第8行代码的作用是调用Student对象的动态方法test2

 

2.self在静态方法中


 1 @implementation Student 2  3 + (void)test2 { 4  5 } 6  7 + (void)test3 { 8     [Student test2]; 9     10     [self test2];11 }12 13 @end

* 在第3、第7行定义了2个静态方法看清楚方法前面的+号

* 再看第10行,这里用到了self。看清楚了,是在静态方法test3中用到了self关键字

* 一开始就说了,self代表着当前方法的调用者。当前方法是test3,那test3的调用者是谁呢?肯定是Student这个类,因为test3是个静态方法。因此这里的self代表着Student这个类

* 因此,第8行、第10行的作用是一样,都是调用了静态方法test2

 

3.self总结

1> 在动态方法中,self代表着"对象"

2> 在静态方法中,self代表着"类"

3> 万变不离其宗,记住一句话就行了:self代表着当前方法的调用者

0 0
原创粉丝点击