A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© M.W 中级黑马   /  2016-7-9 12:45  /  1287 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、self和super
OC提供了两个保留字self和super,用于在方法定义中引用执行该方法的对象。
1)self
OC语言中的self,就相当于C++、Java中的this指针。
学会使用self,首先要搞清楚属性这一概念。
以及理解getter(访问器)和setter(设置器)方法,它到底有什么用?
设置器与访问器,提供外界操作类内部属性的一个通道。

假如,没有这个方法,外界怎么操作类的内部属性?
假如不提供这两个方法,那么这个属性的值,就不能为外界所改变。
因为类的属性,默认是@protect(受保护类型)。属性一般是私有的

2)super
super发送消息可以将方法实现分发其父类。可以重写一个已有的方法来修改或将它添加到现有的方法中,仍然可以将原始的方法纳入到修改后的方法当中
如:
//子类的特有方法
- (void)eat{
    //super指代的是父类对象
    [super run]; //调用父类的run方法
}

2、self的应用场景
1)用在类方法中
2)用在对象方法中
3)访问成员变量
4)self在OC的内存管理特殊使用

我的总结:
如果self写在对象方法中,则指代的就是当前方法的对象([类new])
如果self写在类方法中,那么它指代的就是当前的类对象(类class)

6 个回复

倒序浏览
总结的真好~~~~~~
回复 使用道具 举报
66666666666666666666
回复 使用道具 举报

谢谢
回复 使用道具 举报
强啊,总结的真好!
回复 使用道具 举报
ZzzZZzz 发表于 2016-7-9 20:11
强啊,总结的真好!

小小的总结而已,我还要向各位多请教才是
回复 使用道具 举报
6666666666666666666666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马