2015-08-20 94 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; 
      } 
    } 

初始化它的内部构造没有任何差别,但无视这样做的目的。

相关问题