2014年2月15日 星期六

Lesson: Object-Oriented Programming Concepts

Lesson: Object-Oriented Programming Concepts
(物件導向元件)

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" 



沒有留言:

張貼留言