码迷,mamicode.com
首页 > 其他好文 > 详细

学习笔记之08-self关键字

时间:2014-11-05 23:00:35      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   ar   使用   java   sp   

一、Java中的this只能用在动态方法中,不能用在静态方法中

1.在动态方法中使用this关键字

bubuko.com,布布扣
1 public class Student {
2     private int age;
3     public void setAge(int age) {
4         this.age = age;
5     }
6 }
bubuko.com,布布扣

在第4行使用了this,这里的this代表着调用setAge方法的某个Student对象

 

2.如果在静态方法中使用this关键字,直接报错

bubuko.com,布布扣

 

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

1.self在动态方法中

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

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

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

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

2.self在静态方法中

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

* 在第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代表着当前方法的调用者

 

学习笔记之08-self关键字

标签:style   blog   http   io   color   ar   使用   java   sp   

原文地址:http://www.cnblogs.com/tlios/p/4077450.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!