![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
------------------------------------------------------------
成員變量和局部變量
做用域:成員變量做用於整個類中,局部變量做用於函數,或語句中
內存:成員變量存儲在堆內存,局部變量存儲在棧內存
--------------------------------------------------------------------------------------------------
匿名對象
new Car();
以下圖,匿名new了3個匿名對象,但實際上3個對象的關係是不相關的
new一個,就在棧內存中開闢一個內存空間
當new第二個的時候,第一個就變成了垃圾
匿名對象的使用方式:
1.調用對象的方法,且只調用一次的時候;
2.做爲實際參數
若是在上面的例子中,直接show(new Car());則在棧內存中開闢的空間如圖
當show方法執行結束後,show在棧內存的空間將會被回收,此時,堆內存中new的空間沒有了指向,就變成了垃圾。
----------------------------------------------------------------------------------------------------
封裝
將age的權限設爲private,
new出來的對象就不能直接訪問age了,
必須經過類中的方法set/getage()來訪問
----------------------------------------------------------------------------------------------------
構造代碼塊
對象已創建就會運行
目的:給全部對象進行統一初始化,
而構造函數是給不一樣的對象分別初始化的
構造代碼塊中定義的是不一樣對象共性的初始化內容
-------------------------------------------------------------------------------------------------
this關鍵字
this到底指代什麼
this指代的是當前的對象,每次new一個對象,就表明那個new出來的對象
如: Person p = new Person (「lisi」);
則,構造方法中的this關鍵字則指代 p,
this.name = name --> p.name = name
----------------------------------------------------------------------------
構造函數間調用,要用this關鍵字
如:按常理調用person(String),在Person(String,age)裏直接寫Person(name)便可,
可是,因爲是調用構造函數,因此要這樣:this(name);
第一行?-->由於初始化動做要先執行