標籤:
物件導向:
面向過程:
程式設計,軟體開發解決的本質問題?就是抽象。
抽象需要抽象什嗎? (資料,商務邏輯)
以什麼抽象作為導向(面向)?
物件導向:以資料抽象為導向
面向過程:以商務邏輯抽象為導向
類: 1,靜態屬性 --屬性
2,動態行為 --方法 屬性,方法 統稱為類的成員
--方法
1,修飾符 傳回值類型 方法名 (形參表){
方法體
}
public void move(){
System.out.println(name +"Moving");
}
public存取權限修飾符(公開的)
private(私人)
void傳回值類型(空類型)
int,double,String。。。
move方法名
命名習慣:
1,類名 每個單字首大寫,其他字母小寫
2,屬性.方法名 第一個單詞全小寫,以後每個單字首大寫,其他字母小寫。例:setName()
3,包名 全小寫
4,常量 所有字母大寫 例:final int MAX_SIZE; final常量修飾符
方法調用匹配:
1,實參類型和形參類型要匹配
2,方法中return的值和傳回值類型要匹配
方法調用的步驟:
1,為被呼叫者法分配臨時空間
2,將實參傳給形參
3,流程跳到被呼叫者法中執行
4,執行完或者遇到return,流程返回主調方法,同時被調方法臨時空間釋放。
註:一個java檔案可以定義多個類,但只能有一個pubilc聲明的類,並且這個用public聲明的類,類名必須跟檔案名稱一致
按值傳遞(適合所有基礎資料型別 (Elementary Data Type))
按引用來傳遞(對象)
構造方法:
1,構造方法必須跟類名同名
2,構造方法沒有傳回值,也不用聲明void
物件導向的三大特徵:封裝,繼承,多態
繼承:
抽象父子類別關係遵循原則:任何父類適用的地方子類一定適用。
註:繼承不是最好的代碼複用的方法。
關鍵字extends(擴充)
例:public class Bird extends Animal{}
產生對象的過程:
1,指派至空間
2,給屬性賦初值
3,調用構造方法
定理:
1,任何主類物件建構方法都會去調用父類的構造方法
2,任何類都有構造方法,如果程式員自己不定義,則系統會加上一個預設的構造方法,如果定義了系統就不會加。
3,任何子類的構造方法第一行一定是super(...);或者this(...),如果程式員不這樣寫,則系統會預設的加上super(...);
this(...);調用本類的其他構造方法,他只能出現在構造方法的第一行。
super(...);調用父類的構造方法,該語句只能出現在構造方法的第一行。
super();調用父類中無參的構造方法。
子類中調用父類中的同名方法用super.xxx
this.xxx 調用本類中同名的成員變數
方法覆蓋:
1,放生在父子類之間;
2,同名,同參,同傳回值;
3,子類方法的存取權限不能比父類方法的更封閉;
4,子類方法拋出異常的類型不能比父類方法更寬泛
物件導向解釋,命名習慣,方法調用丶覆蓋