物件導向語言的語意

第一個物件導向語言是 SmallTalk,SmallTalk 80的物件導向概念成為後來許多語言競相模仿的對象,像是 C++, Java, C# 等都是將 C 語言擴充以支持物件導向與義的結果,物件導向語意主要是將資料與函數綁在一起,形成類別與物件結構。

類別的語法可用 class <CLASS_NAME> { <VAR_DEF>* <FUNC_DEF>* } 這樣的結構進行宣告,其中的 * 代表 <VAR_DEF> 與 <FUNC_DEF> 都可以出現數次。程式人員可以利用 new <CLASS_NAME>() 這樣的語法,呼叫 <function> 中的建構函數,建構出該類別的物件。然後,透過 <CLASS_NAME>.<VAR> 的方式,存取該物件的變數,也可以透過 <CLASS_NAME>.<FUNC> 這樣的語法,呼叫該物件的函數。

舉例而言,我們可以用 class Stack { String array[], push(o) {…}, pop {…} } 這樣的語法,宣告一個堆疊物件,然後透過 s = new Stack() 建立物件 s,接著,再透過 s.array 取得 s 物件中的陣列變數,或者透過 s.push(“hello”) 這樣的語法,呼叫 push函數,以便將 “hello” 字串推入堆疊中。

物件導向的語義,與人類對『物體』的概念一致,具有容易想像與理解的特性,這對高階語言而言是一大貢獻。因此,2003 年的圖靈獎頒給了Smalltalk的發明人 Alan Kay,以表彰他的貢獻。

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License