Java基礎:一、抽象過程 (1)
- 2020 年 3 月 17 日
- 筆記
所有程式語言都提供抽象機制
人們通過電腦所能夠解決的問題的複雜性取決於抽象的類型品質。所謂的「類型」是指「所抽象的是什麼?」 舉個例子: 彙編語言是對底層機器的輕微抽象; 命令式語言是對彙編語言的抽象; 上面兩種語言所抽象的內容基於電腦的結構,而不是基於所要解決的問題的結構來考慮。
而面向對象思想的實質是:程式可以通過新類型的對象使自身適用於某個特定的問題。就是說,編寫的程式碼一方面是對問題的解決,另一方面也是對問題的描述。所以,面向對象允許根據問題來描述問題,而不是根據運行解決方案的電腦來描述問題。理解面向對象可以把每個對象看做一台微型電腦–這台電腦具有狀態,具有操作,用戶可以根據這些對象執行對應的操作
Alan Kay曾經總結了第一個成功的面向對象語言,同時也是Java所基於的語言之一的Smalltalk的五個基本特性,這些特性表現了一種純粹的面向對象程式設計方式: 1)萬物皆對象 2)程式是對象的集合,它們通過發送消息來告知彼此所要做的 3)每個對象都有自己的由其他對象所構成的存儲,換句話說,可以通過創建包含現有對象的包的方式來創建新類型的對象。因此,可以在程式中構建複雜的體系,同時將其複雜性隱藏在對象的簡單性背後 4)每個對象都擁有其類型也就是類,每個class,類和類型相同 5)某一特定類型的所有對象都可以接收同樣的消息,體現了繼承的思想
Booach對象提出了一個更加簡潔的描述:對象具有狀態、行為和標識