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物件 只要獲取到物件,相應的資料和方法都有了 組合 在乙個物件內引用其他物件 組合可以降低 的冗餘,降低耦合度 繼承是類之間的關係,組合是物件之間 封裝 隱藏內部細節,對外實現使用介面 封裝可以提高安全性 封裝是為了明確區分內部與外部 在屬性或方...