Objective-c 实例变量的访问级别
2016-01-14 11:08
447 查看
在C#和JAVA中无论是method还是variable都有严格的访问级别控制,那么在object-c中对访问级别的使用非常稀少,原因可能是因为在method上没有访问级别的语法,单单控制变量没有什么力度吧。下面我们来讨论下实例变量的访问级别。实例变量在类中声明时默认是protected的不像一般的C++或C#,java 默认声明是private的。这一点让我们在多语言环境上开发的人比较困惑。
下面介绍下实例变量的访问级别:
显式保护和隐式保护
因为protected 是默认的访问级别,同时你可以显式的声明。
两种方式没有任何区别。但是最佳做法是显式的写出访问级别,即时你知道它默认的访问级别。
下面介绍下实例变量的访问级别:
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; }
两种方式没有任何区别。但是最佳做法是显式的写出访问级别,即时你知道它默认的访问级别。
相关文章推荐
- 老oj3444 && Pku3241 Object Clustering
- Objective-C中的Block
- 【Objective-C】iOS开发中常…
- JS 深度拷贝 Object Array
- 使用iconfont时进行拼接字符图标
- [Objective-C]关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)
- [ES6] When should use Map instead of Object
- [Javascript] Safe Nested Object Inspection
- java-Object类(课堂)
- java 代码转成UML视图 tool:ObjectAid UML Explorer
- Attach、Detach和DeleteObject
- Selenium关于Page Objects
- bindService------>AIDL传递Object
- Object-C数组和字典
- Object-C--->Swift之(一)可选类型
- 014: class and objects > 多态
- 无法解析的外部符号 "public: __thiscall BasePlugin::BasePlugin(class QObject *)"
- Objective-C Runtime
- Object-C--->Swift之(一)元组(tuple)类型
- objc_getAssociatedObject, objc_setAssociatedObject