说明:这个Objective-C专题,是学习iOS开发的前奏,也为了让有面向对象语言开发经验的程序员,能够快速上手Objective-C。如果你还没有编程经验,或者对Objective-C、iOS开发不感兴趣,请忽略。学习本专题之前,建议先学习C语言专题。
OC中有一个self关键字,用法跟Java中的this类似,都是代表着当前方法的调用者。但self和this还是有区别的。
一、Java中的this只能用在动态方法中,不能用在静态方法中
1.在动态方法中使用this关键字
1 public class Student { 2 private int age; 3 public void setAge(int age) { 4 this.age = age; 5 } 6 }
在第4行使用了this,这里的this代表着调用setAge方法的某个Student对象
2.如果在静态方法中使用this关键字,直接报错
二、OC中的self既可以用在动态方法中,也可以用在静态方法中
1.self在动态方法中
1 @implementation Student 2 3 - (void)test2 { 4 5 } 6 7 - (void)test3 { 8 [self test2]; 9 } 10 11 @end
* 在第3行、第8行定义了2个动态方法
* 在第8行使用了self关键字,这里的self代表着调用test3方法的某个Student对象
* 第8行代码的作用是调用Student对象的动态方法test2
2.self在静态方法中
1 @implementation Student 2 3 + (void)test2 { 4 5 } 6 7 + (void)test3 { 8 [Student test2]; 9 10 [self test2]; 11 } 12 13 @end
* 在第3、第7行定义了2个静态方法,看清楚方法前面的+号
* 再看第10行,这里用到了self。看清楚了,是在静态方法test3中用到了self关键字
* 一开始就说了,self代表着当前方法的调用者。当前方法是test3,那test3的调用者是谁呢?肯定是Student这个类,因为test3是个静态方法。因此这里的self代表着Student这个类
* 因此,第8行、第10行的作用是一样,都是调用了静态方法test2
3.self总结
1> 在动态方法中,self代表着"对象"
2> 在静态方法中,self代表着"类"
3> 万变不离其宗,记住一句话就行了:self代表着当前方法的调用者
相关推荐
PHP 5.2 标准课程初级parent 与self 关键字
PHP 5.2 标准课程初级parent 与 self 关键字_2
PHP 5.2 标准课程初级parent 与 self 关键字_1
计算机前端-核心编程.视频13self关键字.avi
15.5 面向对象中实例方法与self关键字_0416212101.mp4
PHP群里有人询问self关键字的用法,答案是比较明显的:静态成员函数内不能用this调用非成员函数,但可以用self调用静态成员函数/变量/常量;其他成员函数可以用self调用静态成员函数以及非静态成员函数。随着讨论的...
主要介绍了PHP中static关键字以及与self关键字的区别,本文讲解了static关键字的定义、迟绑定(Late Static Bindings)、以及与self关键字的区别等内容,需要的朋友可以参考下
作为一个零基础人员,也是天天在网上找资料,深知资料的重要,为此,贡献一些资料,希望各位能够更进一步,少走弯路
本资源从Object-C的基本特性讲起,逐步深入到类和对象的定义、成员变量和方法的实现、对象的产生和使用、self关键字、id类型、封装技术、合成存取方法、键值对编码和键值监听、继承与重载、多态、类型判断、类别与...
self关键字用于引用当前类本身,常用于访问类的静态成员,比如静态方法和静态属性。parent关键字则用于引用当前类的父类,常用于调用父类的方法和属性。 接着,通过具体的代码示例,我们可以更清楚地看到它们的用法...
例如,例10.12展示了如何在`OtherClass`中通过self关键字访问`OtherClass`的静态属性`$my_static`。而parent关键字则用于在子类中调用父类的方法,它允许子类覆盖父类的方法后仍能访问到父类的原始实现。如例10.13所...
`,首先使用`self`关键字来访问`Counter`类的静态属性`$firstCount`,然后对其执行自增操作,并将结果赋值给对象的私有属性`$lastCount`。 - 创建`$countObject`对象并调用`printLastCount`方法时,`self`始终指向`...
本文将深入探讨Delphi中的面向对象编程,包括类的声明、对象的构建、is和as操作符的使用,以及self关键字的含义。 1. **类的声明** 类在Delphi中的声明语法类似于其他面向对象语言,如C++或Java。例如,`TMan`类的...
当在类的静态方法中引用静态属性或方法时,必须使用self关键字,而不是$this关键字,因为$this关键字是在对象实例化后用来引用对象实例的属性或方法。 例如,以下是一个使用self关键字引用静态属性的例子: ```php...
内容概要:这份作业包含了多个Objective-C案例,涵盖了成员变量的引用、set与get方法、继承、多态、self关键字、点语法、init方法重写、自定义构造方法、description方法、野指针错误、autorelease和自动释放池、...
7. **self关键字**:`self`关键字代表当前类,常用于在静态方法中访问静态成员,如`self::member`。与`$this`不同,`self`不能用于访问非静态成员。 8. **魔术方法**:以`__`开头的方法称为魔术方法,会在特定条件...
3. self的用法:self关键字在类的方法中表示当前对象的实例。通过self关键字,我们可以访问对象的属性和方法。在同一个类的任何方法中,self始终指向对象的实例本身,而不需要传递对象引用。 4. 魔法方法:Python中...