Object-C基础-05-self关键字
2016-03-17 00:00
501 查看
摘要: OC中有一个self关键字,用法跟Java中的this类似,都是代表着当前方法的调用者。但self和this还是有区别的。
在第4行使用了this,这里的this代表着调用setAge方法的某个Student对象
* 在第3行、第8行定义了2个动态方法
* 在第8行使用了self关键字,这里的self代表着调用test3方法的某个Student对象
* 第8行代码的作用是调用Student对象的动态方法test2
* 在第3、第7行定义了2个静态方法,看清楚方法前面的+号
* 再看第10行,这里用到了self。看清楚了,是在静态方法test3中用到了self关键字
* 一开始就说了,self代表着当前方法的调用者。当前方法是test3,那test3的调用者是谁呢?肯定是Student这个类,因为test3是个静态方法。因此这里的self代表着Student这个类
* 因此,第8行、第10行的作用是一样,都是调用了静态方法test2
2> 在静态方法中,self代表着"类"
3> 万变不离其宗,记住一句话就行了:self代表着当前方法的调用者
注:本文转自M了个J博客。
一、Java中的this只能用在动态方法中,不能用在静态方法中
1.在动态方法中使用this关键字
public class Student { private int age; public void setAge(int age) { this.age = age; } }
在第4行使用了this,这里的this代表着调用setAge方法的某个Student对象
2.如果在静态方法中使用this关键字,直接报错
二、OC中的self既可以用在动态方法中,也可以用在静态方法中
1.self在动态方法中
@implementation Student - (void)test2 { } - (void)test3 { [self test2]; } @end
* 在第3行、第8行定义了2个动态方法
* 在第8行使用了self关键字,这里的self代表着调用test3方法的某个Student对象
* 第8行代码的作用是调用Student对象的动态方法test2
2.self在静态方法中
@implementation Student + (void)test2 { } + (void)test3 { [Student test2]; [self test2]; } @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代表着当前方法的调用者
注:本文转自M了个J博客。
相关文章推荐
- js中的this关键字详解
- OC - 9.基于Quartz2D绘制下载进度条(demo)
- oc 的一些概念
- [代码例程] iPhone开发入门(7)--- 从C/C++语言到Objective-C语
- IOS 面试习题 Object-C
- objective-c block 讲解
- oc入门基础
- IOS求职之OC面试题
- iOS OC和Swift混编
- iOS控件篇之——UILabel
- OC_继承,初始化
- java this关键字的使用
- OC 省市区划分
- object-c学习笔记
- iOS开发 — Quartz 2D知识点应用 (制作了一个Demo,源代码)
- OC 自定义 get/set 方法注意点
- OC 书签管理系统
- 编写 Objective-C 代码/掌握基本的编程技能 之 读后笔记
- Object-C学习笔记之基础知识一
- Swift 和 OC 混编