第五章.初始化與清理 this static 構造器

1.導讀

  • 不要在代碼中調用gc,因爲沒調用一次gc,java虛擬機就會在不定的時間執行一遍清理工作,而在這個過程中,所有的線程都必須暫停,等待清理線程執行完畢。
  • java中也向c++一樣引入了構造器的概念,並額外提供了“垃圾回收器”。對於不再使用的內存資源賣垃圾回收器能將其自動釋放。

2.構造器

  • java 用構造器來保證對象的初始化。
  • 構造器的命名與類名相同。
  • 當new一個對象時,將會對對象分配存儲空間,並調用相應的構造器。確保在操作對象之前,它已經被恰當的初始化。
  • 默認構造器;不接受任何參數的構造器。
  • 構造器不會返回任何東西,void還會默認返回一個null,但構造器是真的什麼都不返回。

3.this關鍵字

  • Banana a = new Banana();
                   b = new Banana();
                   a.pell(1);
                   b.pell(2);
    只有一個pell方法,它如何知道是被a調用還是被b調用的?
    爲了能簡單的、面向對象的語法來編寫代碼——即“發送消息給對象”,編譯器做了一些幕後工作,。它暗自把“所操作對象的引用”作爲
    第一個參數傳遞給pell().
    Banana.pell(a,1);
    Banana.pell(a,2);就變成了這樣。這是內部的表示。
  • 假設你想在方法內獲得傳遞的這個引用,但這個引用有時編譯器“內部”傳遞的。所以沒有任何表示符可用,所以就有了this這個關鍵字。這個關鍵字即代表這個傳遞進來的引用。
    也就是說this代表“調用方法的那個對象”的引用。this的用法和其他對象的引用並無不同。
  • 也可理解爲對當前對象的引用。
  • 使用this關鍵字可以實現在構造器中調用構造器
    public class test {
    
    	public test() {
    		this(1);
    	}
    	public test(int type){
    		
    	}
    }
    

4.static

  • 靜態方法,static方法就是沒有this的方法。在static內部不能調用非靜態的方法,反過來可以。
  • 可以不初始化對象,僅僅通過類本身來調用靜態方法。
  • java中禁止使用全局方法,但可以在勒種植入static方法就可以訪問其他static方法和域。






















發佈了26 篇原創文章 · 獲贊 14 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章