亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于實例化過程中先后順序問題

背景:實例化過程中(這里先不包含父類),我的理解先后順序為:

  1. 靜態代碼塊

  2. 初始化為默認值(int:0,boolean:false,引用類型:null)

  3. 顯示聲明

  4. 初始化塊

  5. 構造函數中this調用的其他構造函數

  6. 主構造函數

代碼

public?class?ConstructorTest?{
????public?static?void?main(String[]?args){
????????Demo?d?=?new?Demo();?//無參構造函數
????}
}

class?Demo{
????private?String?name?=?"";?//instance?field?initialization??顯示域初始化
????
????public?Demo(){
????}
}

問題

根據先后順序,name先顯式初始化為"",然后再調用構造函數,查過相關資料空的構造函數的定義是:“設置為默認值”,我的理解是默認值是null。但是這里name最后的輸出是"",所以問題是:空的構造函數的默認值是什么?

PS:

真是無聊的問題,但還是望解答。

正在回答

1 回答

你把它設置為靜態函數,系統不會自動幫你設置為默認值

0 回復 有任何疑惑可以回復我~
#1

Antique 提問者

Class Demo里面我并沒有設置靜態啊
2017-08-27 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第二季 升級版
  • 參與學習       531142    人
  • 解答問題       6326    個

課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙

進入課程

關于實例化過程中先后順序問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號