1

哪个更好或哪个是正确的方法,您能否也给出解释(我不知道在 Google 上使用什么搜索词)。

第一种方式:

Public Class A()
{
    Paint _paint _test;

    public void running()
    {
        _test = new Paint();
       //use paint
    }
}

或者

Public Class B()
{
    Paint _paint _test = new Paint();

    public void running()
    {
        //use paint
    }
}

谢谢

4

3 回答 3

4

当您可能(可能在将来)可能想要将参数传递给成员的构造函数时,第一种方法会更好,例如:

class Foo{
    private Bar bar;

    public Foo(){
        bar = new Bar();
    }

    public Foo( String s ){
        bar = new Bar( s );
    }
}

当您知道您永远不想将参数传递给成员的构造函数并且您有多个构造函数都需要初始化此成员时,第二种方法会更好,例如:

class Foo {
    private Bar bar = new Bar();

    public Foo( String s ){ ... }
    public Foo( int i ){ ... }
    public Foo( double d ){ ... }
    public Foo( String s, int i ){ ... }
}
于 2012-04-26T20:25:33.807 回答
0

答案是“视情况而定”。在您已经说明的情况下,使用第二个选项可能更优雅。但是,如果一个值需要知道构造函数参数的值,或者以任何方式被类的构造改变,它可能应该在构造函数中初始化。如果一个成员可以在其声明中初始化,它应该是。这将避免在分配类时将它们初始化为 0 或 Null。

于 2012-04-26T20:26:03.033 回答
-1

最好在使用前进行初始化。仅初始化构造函数中始终需要/使用的变量。

于 2012-04-26T20:25:02.433 回答