Objective-C 访问权限

 

 

  在接下来的时间里面,我们准备为大家介绍Objective-C中的访问权限。

 

  在前面的学习中,我们已经接触过访问权限,而在接下来的时间里面,我们准备为大家详细分析不同的访问权限的作用。

 

  首先,在Objective-C中访问权限分为三种,分别如下:

  (1)@public,该访问权限称为公有访问权限,而公有访问权限的属性都可以在类中或类外访问,

     或者在继承以后,被子类访问。

 

  (2)@private,该访问权限称为私有访问权限,而私有访问权限的属性都不可以在类外访问

     只可以在类中被使用,同时,在继承以后,子类也不可以访问

 

  (3)@protected,该访问权限称为保护访问权限,并且,在默认的情况下就是使用这个访问权限

     而保护访问权限的属性不可以在类外访问但可以在自身的类中或继承的子类中访问

 

 

 

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

 

@interface   Role : NSObject   //定义了类Role,并继承了根类NSObject
{
  @public      //公有

    int x;

  @private     //私有

    int y;

  @protected    //保护

    int pow;
};

  - (void) MoveX : (int) mx : (int) my;  //定义方法MoveX

  + (void) Attack ;                 //定义方法Attack

@end

 

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

//---实现Role类中的方法--//

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

@implementation Role

 -(void)MoveX:(int) mx : (int) my  //实现方法MoveX
 {
  x = mx + my;
 }

 

 + (void) Attack   //实现方法Attack

 {

     x = 10;     //正确,公有访问权限的属性可以在类的方法中访问

     y = 10;     //正确,私有访问权限的属性可以在类的方法中访问

     pow = 100;  //正确,保护访问权限的属性可以在类的方法中访问

  }

@end

 

 

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

//--定义了类man并继承了父类Role--//

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

@interface  man : Role  
{

  
}

 

 -  (void) initVar;

@end

 

 

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

//---实现man类中的方法--//

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

@implementation man

 

-  (void) initVar
{

  x=796;     //正确,子类可以访问父类中的公有属性。

  pow = 780;   //正确,子类可以访问父类中的保护属性。


  y = 50;    //错误,子类不可以访问父类中的私有属性。
}

@end

 

 

//入口函数main

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

{  

  man *m1 = [ [ man alloc ] init ];    //定义对象 m1 并分配了内存空间。

 

  m1->y = 100;     //错误,父类的私有属性不可以在类外访问。

  m1->pow = 200;   //错误,父类的保护属性不可以在类外访问。

  m1->x = 50;      //正确,父类的公有属性可以在类外访问。

 

 

  Role *R1 = [ [ Role alloc ] init ];    //定义对象 R1 并分配了内存空间。

 

  R1->y = 100;     //错误,私有属性不可以在类外访问。

  R1->pow = 200;   //错误,保护属性不可以在类外访问。

  R1->x = 50;      //正确,公有属性可以在类外访问。

 

  return 0;

}

 

 

 

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

 

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

 

 

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

进入游戏学习与训练