public class Test{
int i;
Test(){
System.out.println(i);
}
public static void main(String[] args){
Test obj=new Test();
}
}
輸出= 0爲什麼以及如何通過Java中的構造函數初始化實例變量進行初始化?
P.S:我在Java的幼稚所以這個問題可能是非常愚蠢的。我期待你的支持。謝謝
public class Test{
int i;
Test(){
System.out.println(i);
}
public static void main(String[] args){
Test obj=new Test();
}
}
輸出= 0爲什麼以及如何通過Java中的構造函數初始化實例變量進行初始化?
P.S:我在Java的幼稚所以這個問題可能是非常愚蠢的。我期待你的支持。謝謝
編譯器會將未初始化的靜態/實例字段設置爲默認值。
表波紋管指示數據類型的默認值:
+--------------------------+----------------------------+
| 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 |
+--------------------------+----------------------------+
欲瞭解更多信息,可以看到該文檔here
@GauravDave,謝謝你的反饋。 – nnunes10
見,每Instance-Variable or Class-Variable
通過它初始化的default value
如果實例變量是一些引用類型,那麼它將是 始終分配它的默認值爲
null
所以,在這裏,你的情況是int
原始類型,其default
值0(zero)
這就是你的了,把得到0
的原因。
這就是Java定義*的方式。閱讀JLR - Java語言參考 - 瞭解詳細信息。 –
int的默認值是0 – Abdelhak
當您將int聲明爲「字段」(類變量)時,它會自動使用值「0」進行初始化,但當屬於其他方法時,爲「null」 –