2016-10-22 3 views

答えて

0

staticキーワードは、インスタンスを構築せずにアクセスできるクラスの要素を識別します。クラス名を修飾子として使用してアクセスできます。あなたはStateCacheManager.mInstance

0

mInstanceを書くことができます。この場合

は、クラスStateCacheManagerの目的です。このクラスのオブジェクトは1つだけです。

を初期化するgetInstanceの方法があります。

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 

、私はそれにアクセスするための任意のオブジェクトを作成していないので、あなたの最初の質問への答えは「はい」です。

しかし、あなたはおそらくprivatemInstanceを変数にするとゲッターを追加する必要があります:

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

これは誤っているあなた、何か他のものにmInstanceを設定するから、他のあなたのコードのユーザー、または眠いにあなたのを防止するためでありますほしくない。

これはシングルトンパターンと呼ばれます。これは、クラスのインスタンスが1つだけ存在する場合に使用されます。

関連する問題