2012-04-07

簡介物件導向

在軟體的世界中, 雖說是 [ 物件 ], 但實際上並沒有真正的實體存在, 嚴格說來就是由一堆電子信號 ON 與 OFF 交替所構成的複雜網絡而已, [ 物件 ] 之說只是以人類較能接受的形式來稱呼, [ 物件 ] 僅是一種抽象的意涵, 千萬不要太過執著於字面上的意義.

身為軟體開發者, 我只在乎所學的技術是否能協助我完成整個開發工作, 至於物件導向的優劣問題與未來發展就留給專家學者們去論述 ! 我之前也說過了, 物件導向的概念教學隨處都可以搜尋到, 我不想在這裡多加詳述, 僅針對物件導向的概念做一番簡略描述.

在談論本篇主題前, 我假設您對函式的用法已經相當瞭解.
函式的宣告、函式的呼叫、參數 (引數) 的代入、函式的傳回值 ... 等等

先做個簡單測試 :

(修飾詞不同)
private void myFunction0 ( ) { .... }
public void myFunction1( ) { .... }

(傳回值 與 參數 的運用)
public int myFunction2 (int num1, int num2 ) { .... }
public double myFunction3 (double num1, double num2) { .... }

上面的幾個函式如果您無法理解它們的意義, 那麼請您先把 [ 函式 ] 這個課題學好後再來碰觸物件導向的知識會比較好, 因為 [ 函式 ] 一詞在物件導向的 class (類別) 中將會改以 [ 方法 ] 來稱呼.

class (類別) 與 instance (物件) 的關係 : 我用圖來說明



在程式設計階段中, 你可以將 class 當成是一個模板來設計, 透過 new 關鍵字就可以產生與 class 相關的 [ 物件 ]; 在程式執行期間 (Runtime), 實際參與運作的就是這些 [ 物件 ].

我用簡略的程式碼來表示 : (Java)
===============================
class Monster {
    屬性 : (略)
    方法 : (略)
}
.......
Monstre myMonster = new Monster(); // 產生一隻 Monster 物件 myMonster
===============================
這個 class (類別) 的名稱就是 Monster, 而 myMonster 就是 instance (物件).


我們來創造更多與 Monster 相關的物件 ~ 沿用之前的 class Monster { .... }
====================================
// 以 ArrayList<> 方式宣告物件陣列清單
ArrayList<Monster> myMonster = new ArrayList<Monster>();
....
for (int i=0; i<10; i++) {                  // 準備創造10 個
      Monster m = new Monster();   // 先產生單隻的 Monster 物件 m
      myMonster.add(m);                // 將單隻的物件 m 陸續加入陣列清單中
}
====================================

沒有留言:

張貼留言

搜尋此網誌