2016-10-22 28 views

回答

0

static關鍵字標識可以在不構建實例的情況下訪問的類的元素。您可以使用類名稱作爲限定符來訪問它們。

在這種情況下,你可以寫StateCacheManager.mInstance

0

mInstance是類StateCacheManager的對象。這個類只有一個對象。

應該有一個getInstance方法初始化mInstance

public class StateCacheManager { 
    public static StateCacheManager mInstance; 

    public StateCacheManager getInstance(){ 
     if(mInstance == null){ 
      mInstance = new StateCacheManager(); 
     } 
     return mInstance; 
    } 
} 

這是你如何使用它,

StateCacheManager object = StateCacheManager.getInstance(); 

這個類使用一個名爲Singleton Pattern模式。

0

如果用static修改了某些內容(方法,字段,內部類等),則可以使用它的名稱進行訪問,並使用後綴ClassName.

所以你mInstance變量可以這樣訪問:

StateCacheManager.mInstance 

正如你所看到的,我沒有創建任何對象來訪問它,所以回答你的第一個問題是「是」。

但是,你應該做的mInstance變量private,並添加一個getter:

public static StateCacheManager mInstance = new StateCacheManager(); 
public StateCacheManager getInstance() { return mInstance; } 

這是爲了防止你的代碼的其他用戶,或昏昏欲睡你,不小心設置mInstance到別的東西,你不想要。

這叫做單例模式。當你只想要一個類的一個實例存在時使用它。

相關問題