1. 程式人生 > >面向對象抽象封裝

面向對象抽象封裝

控制語句 菜單 修飾符 ret setters pri 面向對象設計 類型 setter

? 第一章
第一次課
? 使用類圖如何描述設計
- private(私有) 屬性
+ public(公共) 方法
訪問修飾符:
缺省(默認),只能被同一個包中的類訪問
private(私有的),訪問權限最小,只能自己訪問
public(公共的),訪問權限最大,任何類都可以訪問
protected(受保護的)【繼承中講解】
? 面向對象設計的步驟
? 發現類(名詞)
? 發現屬性(名詞或形容詞)
? 發現方法(動詞)
? 類和對象的概念
? 什麽是類?如何創建類
類是一個模型、模板,是抽象的
? 什麽是對象?如何創建對象
對象是模板的具體化、實例化,是客觀存在的
? 類和對象的關系?
類是對象的抽象化,對象是類的實例化
? 類的成員有哪些?如何訪問類的成員?
? this關鍵字,表示當前類的對象
? 只能在當前類中使用
? 不能在static方法中出現
? static標記的方法或屬性,表示類的成員
? 在當前類,直接寫方法名來調用
? 在其他類中調用
必須使用【類名(或對象名).static成員名】
? final關鍵字,表示類的常量(存儲的是不變的數據)
? 修飾的全局變量(屬性),常量
? 常量名,遵循編碼規範,必須全部大寫
? 聲明後,必須馬上賦值,在後面的代碼中不能修改常量的值
? 如何調用常量?
? 在自己內部,直接寫常量名
? 在其他類中,通過【對象名.常量名】

第二次課
? 構造函數——1種特殊的方法
? 特征?
? 方法名和類名相同
? 沒有返回類型,void關鍵字都沒有
? 一般情況下,訪問修飾符是public的
? 作用?
初始化類的成員
? 如何調用?
創建對象時自動調用構造方法
類名 對象名=new 類名(【值】);

構造方法重載後,2個構造方法之間如何相互調用?
this(【值】);//必須寫在第一行
? 註意事項:
? 如果類中,沒有寫構造方法,系統會自動提供一個無參數的構造方法用於初始化類的成員
? 如果類中,寫了帶參數的構造方法,系統將不再自動提供無參數的構造方法
? 方法重載
? 特征
? 在同一個類中
? 方法名相同
? 參數列表(個數、類型)不同
? 註意事項:
與方法的返回類型,訪問修飾符沒有任何關系
? 重載後的方法,如何調用?
根據傳遞的實參的個數和類型,自動查找對應的方法
課後作業:完成上機練習1、2、3、4

第三次課,封裝的概念及使用
? 封裝的好處?
隱藏實現的細節,提高程序的可重用性和可維護性
? 封裝的步驟?
? 將屬性的public或缺省權限 修改為私有的private
? 編寫封裝屬性的2個方法
? public void set屬性名(屬性數據類型 參數名){
}
? public 屬性的數據類型 get屬性名(){
return 屬性名;
}
? 修改setter方法體,編寫邏輯控制語句(比如if),限制參數不符合邏輯的值
? 自動生成屬性對應的getter和setter方法
? 快捷鍵:Shift +Alt+ +S+R
? MyEclipse中菜單欄
Scource——>Generate Getters and Setters…

面向對象抽象封裝