2012-01-04 5 views
0

ここでJavaで単語をクリアするだけです。Javaで同じものの初期化名と割り当て名があります(2回目ではありません)。

プリミティブ型:これは宣言の権利である

int a;//declared but unitialized 

Intializationsや課題:

a = 1;//intialization and assignment 

a = 2;//this is no longer intialization but still an assignment the 2nd time? 

int b = 1;//declaration and intialization = assignment combined? 

b = 2;//just assignment because 2nd time? 

クラスタイプ:

String str;//declaration 

str = "some words";//this is also an intialization and assignment? 

str = "more words"; //since new object still both intialization and assignment even 2nd time? 

答えて

0

コンパイラは、ローカル変数が設定されていることがわかっているときに変数を初期化し、エラーなしで読み取ることができると見なします。

コンパイラがa変数が初期化されていると判断できない場合を考えてください。

int a; 
try { 
    a = 1; 
    // a is initialised and can be read. 
    System.out.println(a); // compiles ok. 
} catch (RuntimeException ignored) { 
} 
// a is not considered initialised as the compiler 
// doesn't know the catch block couldn't be thrown before a is set. 
System.out.println(a); // Variable 'a' might not have been initialized 

a = 2; 
// a is definitely initialised. 
System.out.println(a); // compiles ok. 
+0

ただし、割り当てについてはどうですか? –

+0

初期化は、指定された変数への最初の割り当てに過ぎません。 – Mat

+0

したがって 'int a; System.out.println( "hello"); a = 1; a = 2; '1の代入は、宣言と組み合わされていなくても、初期化です。 –

0

初期化が最初に割り当てられます。常に。

関連する問題