【Objective-C】self关键字
2015-07-16 11:19
465 查看
前言:OC中有一个self关键字,用法跟Java中的this类似,都是代表着当前方法的调用者。但self和this还是有区别的
1、 java中的this只能在动态方法中,静态方法中不能使用;
2、 OC中的self既可以在动态方法中,也可以用在静态方法中;
2、要是在静态方法中使用this,会直接报错
第8行代码的作用是调用Student对象的动态方法test2
2、self在静态方法中
3、总结
1> 在动态方法中,self代表着"对象"
2> 在静态方法中,self代表着"类"
3> 一句话总结就是:self代表着当前方法的调用者
感谢互联网~~
1、 java中的this只能在动态方法中,静态方法中不能使用;
2、 OC中的self既可以在动态方法中,也可以用在静态方法中;
一、Java中的this只能用在动态方法中,不能用在静态方法
1、在动态方法中使用this关键字public class Student { private int age; public void setAge(int age) { this.age = age; } }这里的this代表着调用setAge方法的某个Student对象
2、要是在静态方法中使用this,会直接报错
二、OC中的self既可以用在动态方法中,也可以用在静态方法中
1、self在动态方法中@implementation Student - (void)test2 { } - (void)test3 { [self test2]; } @endself关键字,这里的self代表着调用test3方法的某个Student对象
第8行代码的作用是调用Student对象的动态方法test2
2、self在静态方法中
@implementation Student + (void)test2 { } + (void)test3 { [Student test2]; [self test2]; } @end这里定义的是静态的方法,看方法前面的符号“+”,在前面我们知道:self代表着当前方法的调用者。当前方法是test3,那test3的调用者是谁呢?肯定是Student这个类,因为test3是个静态方法。因此这里的self代表着Student这个类.因此,第8行、第10行的作用是一样,都是调用了静态方法test2
3、总结
1> 在动态方法中,self代表着"对象"
2> 在静态方法中,self代表着"类"
3> 一句话总结就是:self代表着当前方法的调用者
感谢互联网~~
相关文章推荐
- 【Objective-C】 OC编码规范
- 对象引用(object reference)与对象指针的区别
- IOS开发系列--Objective-C之KVC、KVO
- 第5章分布式系统模式 Data Transfer Object(数据传输对象)
- 第5章分布式系统模式 Data Transfer Object(数据传输对象)
- Objective-C特性:Runtime
- 用flvplayer.swf在网页中播放视频(网页中flash视频播放的实现)
- Objective-C中的@Property详解
- Objective-C中的@Property详解
- 黑马——Objective-C学习笔记<十>:分类和协议
- L3:==、java.lang.Object 类、toString()
- Android - 交换控件位置:基于LayoutParams的瞬间交换与基于ObjectAnimator动画效果交换
- 详解Objective-C runtime
- 【Objective-C】点语法
- Objective-C--Runtime机制
- Objective-C--Runtime机制
- Objective-C中的@property和@synthesize用法
- java.lang.IllegalStateException: attempt to re-open an already-closed object
- iOS(iPhone,iPad))开发(Objective-C)开发库常用库索引
- a different object with the same identifier value was already associated with the session