2013-05-07 9 views

答えて

31

変数を宣言するスコープによって異なります。例えば、ローカル変数はその場合、あなたはインスタンス変数は、デフォルト値を取得するため、インスタンス変数の場合のように nullを代入すると、冗長化され、手動でヌルを割り当てる必要がありますdefault valuesを持っていません。述べたように、オブジェクト参照として

public class Test { 
    Object propertyObj1; 
    Object propertyObj2 = null; // assigning null is redundant here as instance vars get default values 

    public void method() { 
     Object localVariableObj1; 
     Object localVariableObj1.getClass(); // illegal, a compiler error comes up as local vars don't get default values 

     Object localVariableObj2 = null; 
     Object localVariableObj2.getClass(); // no compiler error as localVariableObj2 has been set to null 

     propertyObj1.getClass(); // no compiler error 
     propertyObj2.getClass(); // no compiler error 
    } 
} 
1

instance variableは、それらがデフォルト値としてnullを取るようnullが割り当てられる必要はないように。しかし、ローカル変数を初期化する必要があります。そうしないと、コンパイルエラーがThe local variable s may not have been initializedと表示されます。

this link

関連する問題