Upgrade to Pro — share decks privately, control downloads, hide ads and more …

08/27 OOP 設計

crazylion
August 27, 2015

08/27 OOP 設計

講師: 遠遠

crazylion

August 27, 2015
Tweet

More Decks by crazylion

Other Decks in Technology

Transcript

  1. OOP ⬜ 講到OOP (Object-Oriented Programming) 物件 導向程式設計 ⬜ 我們想到 …

    ⬜ Smalltalk,Java,C#,C++(支援) … 物件導向程式 語言(OOPL:Object-Oriented Programming Language)
  2. 程序導向 & 物件導向 ⬜ 程序導向 ◼ 功能目的 ◼ 動作 ◼

    程序 ◼ 工作流思考模式 (一連串函式呼叫,一連串電腦指令) ▫ UML Sequence diagram ▫ http://www.smileytech. net/school/CS471_Project_WebSite_files/OverallSequence.gif ⬜ 物件導向 ◼ 物件導向就是要基於物件阿 ~ ▫ 專注於將系統裡的各部分抽象為物件,系統為一群物件的交互作用 而運作。 ▫ 個別物件擁有各自的屬性(資料)與方法(動作行為)。 ▫ 某種角度上物件導向概念更貼近現實環境。
  3. 歷史 ⬜ 1960年代 Kristen Nygaard & Ole-Johan Dahl 物件導向之父 ⬜

    An Object is anything to which a concept applies. It is an instance of a concept. ⬜ 宏觀:電視、手機、汽車 … ⬜ 微觀:螢幕、按鍵、輪胎、零組件 … ⬜ 抽象概念:會議、訂購行為 …
  4. 基本理論 ⬜ 類別 (Class) ◼ 類別(class)是藍圖,規格書,模板。定義該物的屬性(資 料)與方法(動作行為)。 ⬜ 物件 (Object)

    ◼ 物件(object)是類別的一個實例。 物件 → 類別 (抽象化) 類別 → 物件 (實例化)
  5. 基本理論 1 ⬜ 封裝 (Encapsulation) ◼ 資料隱藏 ◼ 降低能見度 →

    減低依賴性 (低耦合) ⬜ 繼承 (Inheritance) ◼ Reuse 程式碼重用 ◼ 多重繼承 ⬜ 多型 (Polymorphism) ◼ 同名異式 ◼ 相同名稱的方法可以有不同的程式碼。 ◼ 覆寫 Override