Objective-C self 关键字

 

  在接下来的时间里面,我们准备为大家介绍Objective-C中的"self 关键字“。

 

  self 关键字的作用是指向当前的对象。文字描述可能不够直观,稍后,结合例子作进一步的学习。

 

  接下来,我们首先看看self关键字的语法格式

 

  [self 方法名];

 

  语法格式分析

 

  (1)一对中括号。

  (2)在一对中括号里面调用 self 关键字。

  (3)要调用的方法名,必须是当前对象的类中方法,或者,是继承类中的方法,否则,会报错。

  

 

   重点记忆

    (1)self 就是指当前调用方法的对象

        

 

 

 接下来,我们结合例子作进一步的学习。

 

 

//===================//

//------定义了high类-----//

//===================//

@interface high : NSObject
 {
 }

 - (void) MoveX;

@end


@implementation high


 -(void) MoveX 
 {
  NSLog(@"hig MoveX");   //向终端输出hig MoveX,表示对象调用了该方法

 }

@end

 

 

//===================//

//-------定义了Mid类-----//

//===================//

@interface Mid : high
 {
 }

 - (void) MoveX;
 - (void) Move;

@end


@implementation Mid


 -(void) MoveX
 {
  NSLog(@"mid MoveX");  //向终端输出mid MoveX,表示对象调用了该方法
 }


 -(void) Move
 {
  [ self MoveX ];  //通过self 调用了MoveX方法,但self究竟是指向哪个对象呢?

           那么,就要看具体调用的对象。
}

@end

 

 

//===================//

//-------定义了Low类-----//

//===================//

@interface Low : Mid
 {
  int low;
 }

 - (void) MoveX;

@end


@implementation Low

 -(void) MoveX
 {
  NSLog(@"low MoveX");
 }

@end

 

 

//-------入口函数main-----//

int main (int argc, const char * argv[]) {

 Low *L1 = [ [ Low alloc ] init ];  //通过类Low定义了对象L1,并分配了内存空间与初始化。
 [ L1  Move ];   //通过对象L1调用父类Mid中的Move方法。

}

 

 

例子分析:

(1)首先,定义了3个类,分别是high,Mid,Low。

(2)3个类中都有一个MoveX方法,该方法会向终端输出一个信息,说明调用了哪个类中的方法。

(3)在Mid类中,另外定义了一个Move方法,该方法中通过self 调用了MoveX方法

 

   然后,我们看看在入口函数main中,首先通过Low类定义了对象L1

   然后,通过对象L1 调用了Move方法,而这个Move方法是定义在Low类的父类Mid中

   所以,对象L1就可以调用Move方法,

   然后,在Move方法中就通过self 调用了MoveX方法,而self 是指向当前的对象,而当前对象就是L1

   所以,就会调用L1对象的类中的MoveX方法,然后,向终端输出 low MoveX

 

   所以,通过这个例子,我们就可了解到,self 就是指向当前调用的对象,例子中就是Low类所定义的对象L1。

 

 

 

 

  非常好,现在,我们已经掌握了Objective-C中的“self 关键字”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用它去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”

 

  不要停留在理论规则上面,快动起来吧!

 

 

(通过游戏模式学习与训练,需要在电脑上运行)

进入游戏学习与训练