java 編程思想筆記(二)——初始化。本站提示廣大學習愛好者:(java 編程思想筆記(二)——初始化)文章只能為提供參考,不一定能成為您想要的結果。以下是java 編程思想筆記(二)——初始化正文
一.問題
隨著計算機反動的開展,“不平安”的編程方式已逐步成為編程代價昂揚的主因之一。
初始化和清算正是觸及平安的兩個問題。
二.java 處理方案
結構器:一種特殊的辦法。java 中”初始化“和”創立“捆綁在一同,兩者不能別離。
渣滓回收器:釋放無用的對象。
三.辦法重載
為什麼要在這裡講辦法重載?我覺得首先:結構器是一種特殊的辦法,再一個,結構器除了默許結構器還有有參結構器。為了讓辦法稱號相反而方式參數不同的結構器同時存在,就必需用到辦法重載。
區分辦法重載的判決條件
1.參數的數量能否相反
2.參數的類型能否相反
只需其中一條為否,則就是辦法重載,必需記住重載的前提:辦法稱號必需相反。
四.結構器中調用結構器
1.雖然可以用this調用一個結構器,但卻不能調用兩個。此外,必需將結構器調用置於最起始處,否則編譯錯誤。
2.除結構器之外,編譯器制止在其他任何辦法中調用結構器。
五.成員初始化途徑
1.一切變量在運用前都能失掉恰當的初始化,類的根本類型默許為根本類型的默許值,部分變量必需由編程者指定初始值,在類中,一個對象援用不將其初始化,就會取得特殊的null值。
2.編程者指定變量初始化值
3.經過結構器初始化變量值,但是自動初始化在結構器初始化之前完成。
六.變量初始化順序
變量定義的順序決議了初始化的順序,即便變量定義漫步於辦法定義之間。
七.靜態數據初始化
無論創立多少個對象,靜態數據都只占用一份存儲區域,static 關鍵字不能用於部分變量,因而只能作用於域。
八.非靜態實例初始化
代碼如下:
Class Mug{ Mug(int maker){ print("Mug("+maker+")"); } void f(int maker){ print("f("+maker+")"); } } public Class Mugs{ Mug mug1; Mug mug2; { mug1= new Mug(1); mug2= new Mug(2); print("mug1&mug2 initial"); } Mugs() { print("Mugs(int)"); } public static void main(String[] args) { print("Inside main()"); new Mugs(); print("new Mugs() completed"); new Mugs(1); print("new Mugs(1) completed"); } }
從輸入後果可以看出,實例初始化子句是在兩個結構器之前執行的。
九,對六七八的總結
1.首先初始化靜態的變量(第一次訪問.class文件時初始化,只初始化一次),然後初始化非靜態變量
2.非靜態變量會被創立對象時復制給默許值。
3.執行編程值為變量指定的初始值。
4.執行結構器。