OC基础-self关键字的用法10

妖狐艹你老母 2022-06-13 02:37 191阅读 0赞

1. 在方法的内部可以定义1个和属性名相同的局部变量.

这个时候如果在方法中访问这个同名的变量,访问的是局部变量.

问题1:如果这个时候我就是要访问那个同名的属性,怎么办?

问题2:在1个对象方法中要调用当前对象的另外1个对象方法怎么办?

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 条评论,191人围观)

还没有评论,来说两句吧...

相关阅读

    相关 volatile关键

    关键字volatile的主要作用是使变量在多个线程间可见,强制从公共堆栈中取得变量的值,而不是从线程的私有数据栈中取得变量的值。这么说很难理解,我们直接看代码例子来说明。 创

    相关 const关键

    1 const修饰变量; \ 在C语言中const修饰的变量是只读的,其本质还是变量,所以可以使用指针将其变量的值改变。 \ const修饰的变量会在内存占用空间 \ 本

    相关 Using关键

    在.NET大家庭中,有不少的关键字承担了多种角色,那么,using的多种角色都体现在哪些方面呢,我们先一睹为快吧: 下面,本文将从这几个角度来阐述using的应用。 (1)