Java中未給定初始值的基礎資料型別為什麼不能輸出 ——Thinking in Java學習筆記(二)
阿新 • • 發佈:2018-11-08
在java程式設計思想第二章節中有這麼一個練習題:定義一個類,給定兩個無初始值的int和char型別的數值,輸出兩個數的值,驗證int和char的初始值。
我第一次是這麼做的:
public static void main(String[] args) {
int i;
char a;
System.out.println("int的預設值:" + i);
System.out.println("char的預設值:" + a);
}
結果報錯了:
Exception in thread "main" java.lang.Error: Unresolved compilation problems: The local variable i may not have been initialized The local variable a may not have been initialized at com.yc.ThinkingInJava.chapter2.Test1.main(Test1.java:21)
提示在main方法中有引數無初始值,那麼問題來了,java中的基礎資料型別不是有預設值嗎,為什麼一定要定義初始值呢?
原來,java的基礎資料型別的預設值是針對於類欄位變數而言,其他的方法中的變數都需要自己設定初始值,不然編譯就會報錯。
Java中的八大基礎資料型別為:
boolean、char、byte、short、int、long、float、double
與之一一對應的包裝類分別為:
Boolean、Character、Byte、Short、Integer、Long、Float、Double。
而各個欄位的預設值分別為:
boolean(布林型) :false
char(字元型) :空
byte(位元組) :0
shot(短整型) :0
int(整型) :0
long(長整型) :0
float(浮點型) :0.0f
double(雙精度) :0.0d