2013-11-21 106 views
-1

以下代碼中的第4行是什麼意思?它應該是一個正在創建的StatusTracker類型的空參數對象嗎?在類定義中創建對象

我很抱歉,如果這個問題太重要了。我是新來的android和只有非常基本的Java知識。我從來沒有見過一類體迄今內被定義的對象...

public class StatusTracker { 
    private Map<String, String> mStatusMap; 
    private List<String> mMethodList; 
    private static StatusTracker ourInstance = new StatusTracker(); 
    private static final String STATUS_SUFFIX = "ed"; 

    public static StatusTracker getInstance() { 
    return ourInstance; 
    } 

    private StatusTracker() { 
    mStatusMap = new LinkedHashMap<String, String>(); 
    mMethodList = new ArrayList<String>(); 
    } 

/* other class functions ... */ 

} 

回答

1

我想清楚詳細的事情像你剛纔就這樣開始了,

StatusTracker ourInstance =新StatusTracker();

我們可以在這裏看到的類中定義一個類的對象。這是我們在許多數據結構中使用的非常重要的屬性。

含義:這意味着我們可以用另一個對象保存一個對象的內存地址,這樣兩個對象的類型都是相同的。

static StatusTracker ourInstance = new StatusTracker();

定義了一個memeber靜態方法,該成員與類相關聯而不與該類的任何對象關聯。它可以通過類名修改。

Singleton類

public static StatusTracker getInstance() { 
return ourInstance; 
} 

此代碼可以幫助我們在保持只有一個此類的對象在整個程序。這對於我們想要爲此對象中的整個程序保存集中數據的情況很有用。

我們可以使用

StatusTracker.getInstance() 
+0

感謝您抽出寶貴的時間進行詳細解釋! – BlkJck

1

這是一個單獨的對象,這意味着只能被創建它的一個實例,你可以使用StatusTracker.getInstance()方法來訪問它。

+1

也許你應該寫StatusTracker.getInstance(),以使其更清晰的任何地方訪問我們的中央數據。 – isnot2bad

+0

我從來沒有見過像這樣初始化單例。這是不好的做法嗎? – Michael

+0

@Laksa爲什麼這會是一個不好的做法? – noone