構造函數的目的是初始化字段的值,設置對象的初始狀態。那么如果在構造函數中沒有初始化某些字段或所有字段會發生什么?它是否在用戶定義的構造函數之前調用了 JVM 提供的默認構造函數?那么,在這個例子中,會輸出什么?class Name{ int x; boolean y; Name(){ // no initialize } public static void main(){ Name n = new Name(); System.out.println(n.x + ", " + n.y); } }
1 回答

白衣染霜花
TA貢獻1796條經驗 獲得超10個贊
類級字段(實例或靜態字段)獲得分配給它們的默認值。這意味著如果構造函數或實例(或靜態)初始化塊沒有顯式初始化這些字段,則將保留默認值。
在你的情況下:
class Name{
int x; //default value for int is 0
boolean y; //default value for boolean is false
換句話說,你的輸出應該是 0, false
這個問題有關于原始類型的實際默認值的詳細信息。對于 Object 數據類型,默認值為null。
添加回答
舉報
0/150
提交
取消