物件導向 2

2021-09-28 15:33:32 字數 3924 閱讀 2801

1.物件導向的三大特性:封裝、繼承、多型。

一、封裝

1.封裝的學習就是學習類成員的訪問許可權的控制。是設計類的時候需要考慮的問題。

概念:通過對類中的成員的訪問許可權的控制,實現對外部類的訪問的可見和隱藏的控制的過程。

2.類成員的訪問許可權的控制,通過訪問許可權修飾符來控制。可以在類成員的前面新增訪問許可權修飾符來實現對類成員訪問許可權的控制。

3.類成員的訪問許可權一共有四種:

/**

*測試繼承

*/public

class

testfatherandson

}class

grandfather

grandfather()

}class

father

extends

grandfather

father()

}class

sonextends

father

son(

)}

執行結果:

static grandfather

static father

static son

constructor block grandfather

constructor grandfather

constructor block father

constructor father

constructor block son

constructor son

constructor block grandfather

constructor grandfather

constructor block father

constructor father

constructor block son

constructor son

process finished with exit code 0

5.方法重寫(override):當子類覺得父類中的方法不能滿足自身的需求的時候,在子類中對父類的方法重新定義的過程。就稱為重寫(覆蓋)。重寫並沒有真的把父類中的原有的方法覆蓋掉,而是在子類中多了乙個同名的方法。

6.重寫的前提條件:必須有繼承,是發生在子類父類之間的。

7.重寫需要注意的問題:

/**

* 重寫tostring()方法和equals()方法

*/public

class

testequals

}class

student

//訪問器和修改器

public string getname()

public

void

setname

(string name)

//訪問器和修改器

public

intgetage()

public

void

setage

(int age)

//訪問器和修改器

public

intgetscore()

public

void

setscore

(int score)

//重寫tostring()方法

@override

public string tostring()

';}//重寫equals()方法

public

boolean

equals

(object o)

}

8.super 的用法:

/**

*測試super

* super的兩種用法:1.在子類的任意構造方法內打一句必須隱式或者顯式的呼叫父類的構造方法

* 2.在子類中,可以通過super方法呼叫父類中定義的被子類隱藏的成員

*/public

class

testsuper

}//建立people類

class

people

*/public

people

(string name,

int age)

public

intgetage()

public

void

setage

(int age)

void

work()

}//建立doctor類

class

doctor

extends

people

public

doctor

(string name,

int age)

void

work()

void

show()

}

三.多型

1.概念:多型是一種能力,是一種父類引用可以指向子類物件,並且在執行期物件根據自身的實際型別呼叫實際型別的方法的能力。

2.多型的三個必要條件:繼承、父類引用指向子類物件、子類重寫父類方法

/**

* 人演奏樂器:大鼓、鋼琴、小號

*/public

class

testinstruments

}//建立樂器類

class

instruments

instruments

(string name)

public string getname()

public

void

setname()

void

sound()

}//建立鋼琴類

class

piano

extends

instruments

void

sound()

}//建立大鼓類

class

bigdrum

extends

instruments

void

sound()

}//建立小號類

class

trumpet

extends

instruments

void

sound()

}//建立演奏的人類

class

person

}//簡單工廠模式

class

myfactory

return instruments;

}}

3.多型的轉型

/**

* 測試型別轉換

*/public

class

testclasscast}//

class

animal

}class

dogextends

animal

public

void

seedoor()

}class

catextends

animal

}

四.抽象類和抽象方法

1.抽象類的概念:被abstract關鍵字修飾的類就是抽象類。

2.抽象類出現的意義:

/**

*測試abstract

*/public

class

testabstract

}abstract

class

animal

}//建立dog類

class

dogextends

animal

}class

catextends

animal

}

今日練習:

物件導向2

6 static關鍵字 用法 是乙個修飾符,用於修飾成員 當成員被靜態修飾後,就多了乙個呼叫方式,除了可以被物件呼叫外,還可以直接被類名呼叫。類名.靜態成員 static特點 static成員 也叫 類變數 1 隨著類的載入而載入 也就是說 靜態會隨著類的消失而消失。說明它的生命週期最長 2 優先於...

物件導向2

一.昨日內容回顧 1.匿名函式 lambda 引數 返回值 def chi return 飽了 lambda 飽了 2.sorted 排序 sorted iterable,key function,reverse false 3.filter 篩選 filter function,iterable ...

物件導向2

物件導向的精髓是 將資料和處理資料的 繫結,成為乙個9物件 只要獲取到物件,相應的資料和方法都有了 組合 在乙個物件內引用其他物件 組合可以降低 的冗餘,降低耦合度 繼承是類之間的關係,組合是物件之間 封裝 隱藏內部細節,對外實現使用介面 封裝可以提高安全性 封裝是為了明確區分內部與外部 在屬性或方...