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中的“访问权限”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用它去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”。
不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)