1. 程式人生 > >JAVA筆記07日

JAVA筆記07日

創建對象 con stat 加載 this 進棧 str etx cto

###07.01_面向對象(構造方法Constructor概述和格式)(掌握)
* A:構造方法概述和作用
* 給對象的數據(屬性)進行初始化
* B:構造方法格式特點
* a:方法名與類名相同(大小也要與類名一致)
* b:沒有返回值類型,連void都沒有
* c:沒有具體的返回值return;

class Demo{

  public Demo{

}

}

###07.02_面向對象(構造方法的重載及註意事項)(掌握)
* A:案例演示
* 構造方法的重載
* 重載:方法名相同,與返回值類型無關(構造方法沒有返回值),只看參數列表
* B:構造方法註意事項
* a:如果我們沒有給出構造方法,系統將自動提供一個無參構造方法。
* b:如果我們給出了構造方法,系統將不再提供默認的無參構造方法。
* 註意:這個時候,如果我們還想使用無參構造方法,就必須自己給出。建議永遠自己給出無參構造方法

###07.03_面向對象(給成員變量賦值的兩種方式的區別)
* A:setXxx()方法
* 修改屬性值
* B:構造方法
* 給對象中屬性進行初始化

public Person(int age,String name){

  this.age = age;

  this.name = name;

}

###07.06_面向對象(創建一個對象的步驟)(掌握)
* A:畫圖演示
* 畫圖說明一個對象的創建過程做了哪些事情?
* Student s = new Student();
* 1,Student.class加載進內存
* 2,聲明一個Student類型引用s
* 3,在堆內存創建對象,
* 4,給對象中屬性默認初始化值
* 5,屬性進行顯示初始化
* 6,構造方法進棧,對對象中的屬性賦值,構造方法彈棧
* 7,將對象的地址值賦值給s

###07.10_面向對象(static關鍵字的特點)(掌握)
* A:static關鍵字的特點
* a:隨著類的加載而加載
* b:優先於對象存在
* c:被類的所有對象共享
* 舉例:咱們班級的學生應該共用同一個班級編號。
* 其實這個特點也是在告訴我們什麽時候使用靜態?
* 如果某個成員變量是被所有對象共享的,那麽它就應該定義為靜態的。
* 舉例:
* 飲水機(用靜態修飾)
* 水杯(不能用靜態修飾)
* 共性用靜態,特性用非靜態
* d:可以通過類名調用
* 其實它本身也可以通過對象名調用。
* 推薦使用類名調用。
* 靜態修飾的內容一般我們稱其為:與類相關的,類成員
* B:案例演示
* static關鍵字的特點

###07.11_面向對象(static的註意事項)(掌握)
* A:static的註意事項
* a:在靜態方法中是沒有this關鍵字的
* 如何理解呢?
* 靜態是隨著類的加載而加載,this是隨著對象的創建而存在。
* 靜態比對象先存在。
* b:靜態方法只能訪問靜態的成員變量和靜態的成員方法
* 靜態方法:
* 成員變量:只能訪問靜態變量
* 成員方法:只能訪問靜態成員方法
* 非靜態方法:
* 成員變量:可以是靜態的,也可以是非靜態的
* 成員方法:可是是靜態的成員方法,也可以是非靜態的成員方法。
* 簡單記:
* 靜態只能訪問靜態。
* B:案例演示
* static的註意事項

###07.12_面向對象(靜態變量和成員變量的區別)(掌握)
* 靜態變量也叫類變量 成員變量也叫對象變量
* A:所屬不同
* 靜態變量屬於類,所以也稱為為類變量
* 成員變量屬於對象,所以也稱為實例變量(對象變量)
* B:內存中位置不同
* 靜態變量存儲於方法區的靜態區
* 成員變量存儲於堆內存
* C:內存出現時間不同
* 靜態變量隨著類的加載而加載,隨著類的消失而消失
* 成員變量隨著對象的創建而存在,隨著對象的消失而消失
* D:調用不同
* 靜態變量可以通過類名調用,也可以通過對象調用
* 成員變量只能通過對 象名調用

JAVA筆記07日