2016-03-23 5 views
0
public class Test{ 
int i; 
Test(){ 
    System.out.println(i); 
} 
public static void main(String[] args){ 
    Test obj=new Test(); 
    } 
} 

出力。私はあなたのサポートを期待しています。ありがとうインスタンス変数がJavaでコンストラクタによって初期化されることなく初期化される理由と方法は?私はこの質問は非常に愚かなことができ、Javaでナイーブ午前:= 0</p> <p><strong>P.S</strong>

+0

Javaが*定義されている方法*です。詳細は、「JLR - Java言語リファレンス」を参照してください。 –

+0

intのデフォルト値は0です – Abdelhak

+0

"フィールド"(クラス変数)としてintを宣言すると、値 "0"で自動的に初期化されますが、他のメソッドに属する場合は "null" –

答えて

1

初期化されていない静的/インスタンスフィールドは、コンパイラによってデフォルト値に設定されます。

テーブル怒鳴るが、データ型のデフォルト値を示します。詳細については

+--------------------------+----------------------------+ 
|  Data Type   | Default Value (for fields) | 
+--------------------------+----------------------------+ 
| byte      | 0       | 
| short     | 0       | 
| int      | 0       | 
| long      | 0L       | 
| float     | 0.0f      | 
| double     | 0.0d      | 
| char      | '\u0000'     | 
| String (or any object) | null      | 
| boolean     | false      | 
+--------------------------+----------------------------+ 

を、あなたは、doc here

+0

@ GauravDave、ご意見ありがとうございます。 – nnunes10

1

を参照してください、それによって初期化され、すべてのInstance-Variable or Class-Variabledefault value

だを見ることができますinstance-variableが何らかの参照型の場合、 は常にデフォルト値0で割り当てられます

だから、ここあなたのケースでは、そのintdefault値あなたは、アウトプットに0を得る理由ですその0(zero)あるプリミティブ型です。

関連する問題