Objective-c 实例变量的访问级别
在C#和JAVA中无论是method还是variable都有严格的访问级别控制,那么在object-c中对访问级别的使用非常稀少,原因可能是因为在method上没有访问级别的语法,单单控制变量没有什么力度吧。下面我们来讨论下实例变量的访问级别。实例变量在类中声明时默认是protected的不像一般的C++或C#,java 默认声明是private的。这一点让我们在多语言环境上开发的人比较困惑。
下面介绍下实例变量的访问级别:
| protection level | complier directive | desciption | 
| privete | @private | 在类内部声明的方法使用 | 
| protected | @protected | 在本类和子类内部使用 | 
| public | @public | 从任意的类和方法中使用 | 
| package | @package | 在程序包内部任意地方使用, 目前只适用于64位系统 | 
显式保护和隐式保护
因为protected 是默认的访问级别,同时你可以显式的声明。
@interface Player:NSObject{
//this is  a protected instance varible that implicit declare
int m_playerExperience;
}
@interface Player:NSObject{
//this is  a protected instance varible that explicit declare
@prootected int m_playerExperience;
}
两种方式没有任何区别。但是最佳做法是显式的写出访问级别,即时你知道它默认的访问级别。
                    
                
                
            
        
浙公网安备 33010602011771号