初始化对象的正确方法是什么?

What is the right way to initialize objects?

假设我们有这个玩家 class。

这样做比较好:

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

    public Player()
    {}
}

或者这个:

public class Player
{
    public Vector2 position;

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

或者根本不重要?我喜欢第一种方式,因为这样代码会更清晰

如果 position 可以在不引用传递给构造函数的任何参数的情况下创建,则第一种方法更好。在这个特定实例中是正确的。

如果您需要多个构造函数,它可以避免重复代码。尽管您可以在 Java 中委托构造函数,但第一种方法仍然是更清晰的方法。

在constructor里面初始化position的目的是当你需要给它赋值的时候。

例子

    public class Player
    {
          public Vector2 position;

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

在构造函数中初始化它没有任何区别,但违背了这样做的目的。