19-OC关键字-self

1. 在方法的内部可以定义1个和属性名相同的局部变量.
这个时候 如果在方法中访问这个同名的变量,访问的是局部变量.
如果需要访问属性就需要使用关键字self

2. self:自己的.
和Java、C#中的this关键字有1点点像.
可以在对象方法和类方法中使用.
self是1个指针. 在对象方法中self指向当前对象. 在类方法中self指向当前类.
3. self用在对象方法中.
1). self在对象方法中,指向当前对象.
当前对象: 谁调用方法谁就是当前对象.
2). 在对象方法中,self指向当前对象,然后这又有神马用?
a. 可以使用self显示的访问当前对象的属性.
self->属性. 代表访问的是当前对象的这个属性.
b. 可以使用self来调用当前对象的其他的对象方法.
3). 对象方法中使用self的场景.
a. 必须使用self的场景.
-> 如果在方法中存在和属性同名的局部变量,
你如果想要访问同名的局部变量,直接写就可以了.
你如果想要访问当前对象的同名属性 必须使用self
-> 在对象方法中,如果要调用当前对象的其他的对象方法 必须使用self.
b.选用self的场景.
在方法中不存在和属性同名的局部变量 如果这个时候想要访问当前对象的属性
用布用self效果都是一样的.都是访问的当前对象的属性.
属性要求以下划线开头 局部变量不要求以下划线开头 按照这个规范来 实际上是不会重名的.
4. 把slef用在类方法中.
1). 类加载. 当类第1次被访问的时候 会将类的代码存储在代码区.
代码区中用来存储类的空间也有1个地址.
2). 在类方法中 self也是1个指针.执行当前这个类在代码段中的地址.
self 在类方法中 就相当于是当前这个类.\
3). 总结1下取到类在代码段中的地址的方式.
a. 调试查看对象的isa指针的值.
b. 在类方法中查看self的值.
c. 调用对象的对象方法class 就会返回这个对象所属的类在代码段中的地址.
d. 调用类的类方法class 就会返回这个类在代码段中的地址.
4). 有神马用?
可以在类方法中使用self来显示的调用本类的其他的类方法.
使用建议,如果要在当前类方法中调用本类的其他的类方法 虽然可以直接使用类名 但是建议使用self
5. 对象方法可以声明多次.但是只会认为有1次.
对象方法如果有多次声明只能实现1次 否则就会报错.
对象方法之间是不能重名的.
类方法之间也是不可以重名的.
但是,对象方法和类方法是可以重名的.
通过类名来调用 调用的就是类方法
通过对象名来调 调用的就是对象方法.

6. 注意
1). 在对象方法中, self代表当前对象.
所以可以通过self访问当前对象的成员.
在对象方法中 不能使用self调用本类的类方法.
2). 在类方法中,self代表当前这个类.
所以,可以通过self调用当前类的其他的类方法.
在类方法中 不能使用self访问对象的成员. 不能去直接访问属性和调用对象方法.



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值