PHP 物件導向 - 基礎觀念篇
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

PHP 物件導向 - 基礎觀念篇

  • 16,121 views
Uploaded on

哇寶內部教育訓練用教材

哇寶內部教育訓練用教材

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
16,121
On Slideshare
16,050
From Embeds
71
Number of Embeds
4

Actions

Shares
Downloads
91
Comments
0
Likes
4

Embeds 71

http://www.slideshare.net 66
http://www.plurk.com 3
http://static.slideshare.net 1
http://s.testerhome.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. PHP 物件導向 - 基礎觀念篇 瞭解 PHP 物件導向的開發方式
  • 2. 物件導向@PHP 類別?物件?怎麼分? • 抽象?繼承?多型? • 變數還是屬性?函式還是方法? • PHP5 在物件導向上還有哪些特色? •
  • 3. 類別 Class
  • 4. class Person() {} 類別只是一堆函式的集合嗎? • 凝聚力 • 物件的藍圖 • 包裝商業邏輯 • 適應性良好 • 不一定要跟現實生活的東西有關聯 • 會佔記憶體空間
  • 5. 物件 Object
  • 6. $jace = new Person(); 物件和一般變數有什麼不同? • 能管理自身的狀態 • 可以調用方法或取用屬性 • 物件變數只放位址
  • 7. 成員 Member
  • 8. $jace->height & $jace->eat(); 屬性即變數?方法即函式? • 物件成員,用 this • 屬性可以有常數預設值 • 實作同類別的不同物件,其屬性不會互相 干擾
  • 9. 封裝 Encapsulation
  • 10. $jace->height = 0 ? 不能任意更改物件內部狀態 • setter 可以對參數值做檢查 • getter 讓我們能在輸出狀態前有改變的機 會
  • 11. 作用域 Scope
  • 12. private, protected, public, static 定義變數可視範圍 • private: 我的就是我的 • protected: 我和我的子孫可以用 • public: 大家都能用 • static: 影響同型態的所有物件實體 • 類別 static 方法中,不可用 this ! • 方法 local 變數
  • 13. 繼承 Inheritance
  • 14. Manager extends Person 不僅僅是復用程式碼 • 共用相同的邏輯 • 覆寫 (override) 不同的邏輯
  • 15. 抽象 Abstraction
  • 16. 'Person' === get_class($jace) 特意簡化問題 • 概略地來表達事物
  • 17. $jace->drive($car); 特意簡化問題 • Neo 開 Ferrari 跑車 • Jace 開 Toyota 小車 • 人開車
  • 18. 抽象類別 Abstract Class
  • 19. abstract class Person 不希望被實體化的類別 • 概念類別 • 人、動物、工作…
  • 20. 多型 Polymorphism
  • 21. $employee->work() 一視同仁 • 弱型別: Duck Type (只考慮能不能做什麼) • 強型別:必須是同一個型別或其子類別
  • 22. 介面 Interface
  • 23. Car implement Drivable 告訴使用者可以怎麼做 • 只提供方法的宣告 • 類別必須「實作」介面 • 可以實作多個介面
  • 24. 異常 Exception
  • 25. $jace->eat($neo) 處理異常錯誤的好方法 • throw • try … catch • 一層一層往上拋
  • 26. PHP5 特色
  • 27. Special 不同於其他語言的特色 • __constructor(), __destructor() • clone • magic method (__set, __get, __call, …) • type hint (通常是強型別語言才有)
  • 28. 謝謝