(物件導向元件)
Object(物件), Class(類別), Inheritance(繼承), Interface(介面), Package(封包)
Object
1. 狀態與行為
任何東西都有"狀態與行為",例如狗狗有狀態[名字、顏色、血統、飢餓度];有行為[吠、撿東西、搖尾巴]
2. 程式的物件亦可以拆成狀態(裏)與行為(表),一般來說,物件與物件間的溝通牽扯到的是行為
3. 將程式拆成個別的物件,可以有幾個好處:
(1) 物件可以其他物件去做簡易的書寫、維護,也較容易遷入系統中
[模組適應性 Modularity]
(2) 因為物件的溝通只透過行為/ 方法[mothod],物件內的資訊可保有隱密性
[資料隱密性 Information-hiding]
(3) 如果有物件已經存在,你可以拿來用在自己的程式中
[程式覆用性 Code re-use]
(4) 如果有物件出錯,只需單純替換物件,不必做大幅的修改程式
[插入除錯容易性 Pluggability and debugging ease]
Class
1. 許多物件都有重複性,例如世界中有很多腳踏車,但是基本上腳踏車的組成(狀態與行為)都是差不多的。Class(類別)則是如何造出這些Object(物件)的藍圖
2. class Bicycle{ 是類別程式
主程式中,用Bicycle bike1 = new Bicycle();
Inheritance
1. 許多不同種類的物件,往往有一定程度的相似,例如:越野自行車、公路車、協力車等,都與腳踏車相似,不過有新增的狀態或行為讓它們與腳踏車有所不同
2. 物件導向程式允許Class(類別)繼承舊有的狀態或行為
3. class MountainBike extends Bicycle {
Interface
1. Methods form the object's interface with the outside world,行為通常是物件接觸外界的管道
2.
interface Bicycle { // wheel revolutions per minute 物件的方法[行為] void changeCadence(int newValue); void changeGear(int newValue); void speedUp(int increment); void applyBrakes(int decrement); }
為了建立介面
class ACMEBicycle implements Bicycle {
3. 介面讓類別對於方法[行為]的表示更為正式
如果你的類別宣稱有一個介面,那介面提及的方法,必須在類別被編譯之前就先定義好
Package
1. 封包是一群有關的類別或方法,因為JAVA有上千種類別,有組織地整理是件好事
2. JAVA提供龐大的類別庫供你使用,該庫又別稱"Application Programming Interface"
或簡稱"API"
沒有留言:
張貼留言