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 );
    }
}

2番目の方法は、メンバーのコンストラクターにパラメーターを渡したくないことがわかっていて、すべてがこのメンバーを初期化する必要がある複数のコンストラクターがある場合に適しています。例:

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

答えは「状況によって異なります」です。あなたが説明した場合、2番目のオプションを使用する方がおそらくよりエレガントです。ただし、値がコンストラクターパラメーターの値を知る必要がある場合、またはクラスの構築によって何らかの方法で変更された場合は、おそらくコンストラクターで初期化する必要があります。メンバーがその宣言で初期化できる場合は、そうする必要があります。これにより、クラスが割り当てられたときにそれらを0またはNullに初期化する必要がなくなります。

于 2012-04-26T20:26:03.033 に答える
-1

使用する直前に初期化することをお勧めします。コンストラクターで常に必要/使用される変数のみを初期化します。

于 2012-04-26T20:25:02.433 に答える