在C#和JAVA中不管是method仍是variable都有嚴格的訪問級別控制,那麼在object-c中對訪問級別的使用很是稀少,緣由多是由於在method上沒有訪問級別的語法,單單控制變量沒有什麼力度吧。下面咱們來討論下實例變量的訪問級別。實例變量在類中聲明時默認是protected的不像通常的C++或C#,java 默認聲明是private的。這一點讓咱們在多語言環境上開發的人比較困惑。java
下面介紹下實例變量的訪問級別:this
protection level | complier directive | desciption |
privete | @private | 在類內部聲明的方法使用 |
protected | @protected | 在本類和子類內部使用 |
public | @public | 從任意的類和方法中使用 |
package | @package | 在程序包內部任意地方使用, 目前只適用於64位系統 |
顯式保護和隱式保護spa
由於protected 是默認的訪問級別,同時你能夠顯式的聲明。blog
@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; }
兩種方式沒有任何區別。可是最佳作法是顯式的寫出訪問級別,即時你知道它默認的訪問級別。ip