黑马程序员技术交流社区

标题: self和super [打印本页]

作者: M.W    时间: 2016-7-9 12:45
标题: self和super
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)


作者: lijunyusmile    时间: 2016-7-9 18:25
总结的真好~~~~~~
作者: 18704635324    时间: 2016-7-9 18:28
66666666666666666666
作者: M.W    时间: 2016-7-9 20:06
lijunyusmile 发表于 2016-7-9 18:25
总结的真好~~~~~~

谢谢
作者: ZzzZZzz    时间: 2016-7-9 20:11
强啊,总结的真好!
作者: M.W    时间: 2016-7-9 20:31
ZzzZZzz 发表于 2016-7-9 20:11
强啊,总结的真好!

小小的总结而已,我还要向各位多请教才是
作者: 江小鱼    时间: 2016-7-9 23:24
6666666666666666666666




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2