2015-08-20 132 views
1

所以說,我們有這個球員類。初始化對象的正確方法是什麼?

是更好地做到這一點:

public class Player 
{ 
    public Vector2 position = new Vector2(); 

    public Player() 
    {} 
} 

或本:

public class Player 
{ 
    public Vector2 position; 

    public Player() 
    { 
     position = new Vector2(); 
    } 
} 

還是沒有呢不是在所有問題?我喜歡做第一種方式,因爲代碼會更清晰

+0

變量和內存佔用的範圍會受到影響,doea不會影響小規模項目,但是會對大規模產生影響。 – MarmiK

+0

從風格的角度來看,我會用第二個例子:如果你的構造函數有一個分配給一個字段的參數,那麼所有的字段賦值都在一個地方。 –

+0

@MarmiK - 爲什麼變量範圍或內存佔用會受到影響?兩種方法應該是一樣的。 – monkeyhybrid

回答

4

第一種方法更好,如果可以創建position而不引用傳遞給構造函數的任何參數。在這個特殊情況下,這是真實的。

如果您需要多個構造函數,它可以避免重複代碼。雖然可以使用Java委託構造函數,但第一種方法仍然是更清晰的方法。

+0

值得類似的問題閱讀此答案:http://stackoverflow.com/a/24558/1467680 – monkeyhybrid

0

在構造函數中初始化位置的目的是當你需要給它賦值的時候。

public class Player 
    { 
      public Vector2 position; 

      public Player(Vector2 pos) 
      { 
        position = pos; 
      } 
    } 

初始化它的內部構造沒有任何差別,但無視這樣做的目的。

相關問題