面向過程 每一個具體的步驟都親力親為,詳細處理每一個細節 面向對象 不關心具體步驟,而是找一個已經具有該功能的人來幫我做事 特點 封裝性 繼承性 多態性 類 是一組相關屬性和行為的集合 成員變數(屬性):該事物的狀態信息 成員方法(行為):該事物能做什麼 類是對象的模板,對象是類的實體 類的定義格式 ...
面向過程
每一個具體的步驟都親力親為,詳細處理每一個細節
面向對象
不關心具體步驟,而是找一個已經具有該功能的人來幫我做事
特點
封裝性
繼承性
多態性
類
是一組相關屬性和行為的集合
成員變數(屬性):該事物的狀態信息
成員方法(行為):該事物能做什麼
類是對象的模板,對象是類的實體
類的定義格式
修飾符 class 類名{
}
如何使用類
1.導入包(同一包中可省略)
2.創建 類名稱 對象名 = new 類名稱();
3.使用 對象名.成員變數 或 對象名.成員方法
成員方法定義格式
修飾符(不加static)返回值類型 方法名(參數類型 參數名){
方法體;
}
一個對象調用一個方法記憶體圖
成員方法保存的是一個地址值
兩個對象調用同一個方法記憶體圖
一個引用,作為參數轉遞到方法
使用對象類型作為方法的返回值
成員變數與局部變數區別
1.定義位置不同:成員變數定義在類中方法外,局部變數定義在方法中
2.作用範圍不同:成員變數全類通用,局部變數只能在本方法中使用
3.預設值不同:成員變數根據數據類型不用有不用的預設值,局部變數沒有預設值
4.記憶體位置不同:成員變數在堆記憶體,局部變數在棧記憶體
5.生命周期不同:成員變數隨著對象的誕生而誕生,隨著對象被垃圾回收而消失;局部變數隨著方法進棧而誕生,隨著方法出棧而消失
封裝
方法是一種封裝
關鍵字private也是一種封裝
將一些細節信息隱藏起來,對外不可見
private修飾的成員變數不能被其他類直接訪問,但可以間接訪問:設置一對Getter/Setter方法
this關鍵字
如果方法的局部變數與成員變數重名時,根據就近原則訪問的是方法中的局部變數,如果需要訪問本類中的成員變數,格式為 this.成員變數
通過誰調用方法,誰就是this
類的構造方法
專門用來創建對象的方法
格式:
修飾符 類名稱 (參數類型 參數名稱){
方法體
}
註意事項
1.構造方法沒有返回值
2.構造方法的名稱要與類名稱相同
3.如果沒有編寫構造方法,那麼編譯器就會贈送一個無參的構造方法,而該方法的方法體什麼都不幹
4.一旦編寫了至少一個構造方法,編譯器就不會贈送構造方法
5.構造方法可以重載
定義一個標準的類
1.每個成員變數都用private修飾
2.為每個成員變數設置一對Getter/Setter
3.編寫一個無參的構造方法
4.編寫一個全參的構造方法