物件導向編程

出自維基百科,自由嘅百科全書
(由物件導向程式編寫跳轉過嚟)
跳去導覽 跳去搵嘢

物件導向程式編寫object-oriented programming),程式編寫範式嘅一種。喺用物件導向程式編寫編寫電腦程式嗰陣,以「物件」(object)做基本單元,亦即樣樣以物件來設計。物件嘅行為,稱之為方法。物件嘅資料結構,稱之為欄位,或者特性等。有啲程式語言,專門協助人以物件編寫,就叫物件導向程式語言,但唔用都一樣寫到,只係無咁方便。

大多數依類程式設計,物件都有範本造出來,稱之為類別(class)。叫類別嘅意思,就係佢造出嘅物件,都會同一類,歸咗類就無咁雜亂。類別就好似個餅模,可以造出好多同款嘅餅,亦即物件。某個類別造出來嘅物件,亦稱為該類別嘅實例。實例入便,都各帶自己資料或者數據。至於有邊幾欄資料,就由類別決定。每欄資料稱之為變數。同一個類別生出來嘅物件,有邊幾欄變數,大家都一樣,然而變數所載內容,大家可以唔同[1][2]。前述為大多數物件導向程式而言,之不過,物件導向程式語言有好多隻,未必一定要咁,例如動態程式語言咁 ,都可以設計到中途加減欄位。

依種程式寫法,會更貼近現實世界思維。有關嘅資料同行為,都會歸一喺物件之內。行為都係物件同自己,或者物件同物件之間,咁較易管理。

查實咁寫法可以追到一九六七年時,Simula程式語言改動到配合物件導向,物件、類別、承繼依啲概念,都係嗰時出來。

[編輯]

物件導向程式編寫,繙自英文object-oriented programming

繙譯而言,臺灣叫嘅物件導向,中國大陸叫嘅面向對象,都繙自英文object-oritented。然而兩者繙譯都有不善之處。依處object比擬世界上嘅物件,叫對象差實有偏差。而依處oriented並非導向之意,亦非面向之意,而係以嗰樣嘢為中心,以嗰樣嘢為方針,object-oriented意思為「物件為本」咁去編寫程式,亦即編寫程式以物件來設計。

[編輯]

例如以下呢段 C++ 噉:

1 class Car { // 「Car」係一個類別。
2   public: // Car 嘅每一個實例(每件屬於 Car 嘅物件)都會有以下呢啲變數...
3     string brand; // 牌子
4     string model; // 型號
5     int year; // 年份
6 };

呢種做法喺好多應用上都好幫到手令個程式更加容易打理,例:一位遊戲製作師喺度編寫佢隻新遊戲遊戲程式,佢想創造一個遊戲世界俾玩家喺裏面移動;佢想個虛擬世界設計成好似一個現實嘅城市噉,度緊個城市其中一條街要點設計,佢想條街有幾架車泊咗喺度做背景,佢可以設定一個「車」嘅類別,個類別每個實例都有「色水」同「位置」等嘅變數,然後叫個程式將「建構一個車嘅實例」呢樣嘢做三次-就唔使吓吓都重新打過「建構一個車嘅實例」嘅碼[3][4]。因為 OOP 咁好使好用,有好多常見嘅程式語言都支援 OOP,包括咗 C++JavaScriptC#Python... 等等。

睇埋[編輯]

參考文獻[編輯]

  • Armstrong, Deborah J. (February 2006). "The Quarks of Object-Oriented Development". Communications of the ACM. 49 (2): 123–128. doi:10.1145/1113034.1113040.
  • Pecinovsky, Rudolf (2013). OOP – Learn Object Oriented Thinking & Programming. Bruckner Publishing. ISBN 978-80-904661-8-0.
  • Schach, Stephen (2006). Object-Oriented and Classical Software Engineering, 7th Edition. McGraw-Hill. ISBN 978-0-07-319126-3.
  • Weisfeld, Matt (2009). The Object-Oriented Thought Process, 3rd Edition. Addison-Wesley. ISBN 978-0-672-33016-2.
  • West, David (2004). Object Thinking (Developer Reference). Microsoft Press. ISBN 978-0735619654.

[編輯]

  1. Kindler, E.; Krivy, I. (2011). "Object-Oriented Simulation of systems with sophisticated control". International Journal of General Systems: 313–343.
  2. Lewis, John; Loftus, William (2008). Java Software Solutions Foundations of Programming Design (6th ed). Pearson Education Inc. ISBN 978-0-321-53205-3., section 1.6 "Object-Oriented Programming".
  3. Quick Tip: Intro to Object-Oriented Programming for Game Development.
  4. Jacobson, Ivar (1992). Object-Oriented Software Engineering: A Use Case-Driven Approach. Addison-Wesley.

[編輯]