标签:
在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; }
两种方式没有任何区别。但是最佳做法是显式的写出访问级别,即时你知道它默认的访问级别。
标签:
原文地址:http://www.cnblogs.com/allanxyq/p/3520436.html