我們之所以將自自然界分解,組織成各種概念,并按其含義分類,主要是因?yàn)槲覀兪钦麄€(gè)口語交流社會(huì)共同遵守的協(xié)定的參與者,這個(gè)協(xié)定以語言的形式固定下來……除非贊成這個(gè)協(xié)定中的規(guī)定的有關(guān)語言信息的組織和分類,否則我們根本無法交談。
——Benjamin Lee Whorf(1897~1941)
*面向?qū)ο蟪绦蛟O(shè)計(jì)(Object-oriented Programmering,OOP)。
*所有的編程語言都提供抽象機(jī)制,所謂的“類型”是指“所抽象的是什么”。
*程序員必須建立起在機(jī)器模型(位于“解空間”內(nèi),這是你對(duì)問題建模的地方,例如計(jì)算機(jī))和實(shí)際待解決問題的模型(位于“問題空間”內(nèi),這是問題存在的地方,例如一項(xiàng)業(yè)務(wù))之間的關(guān)聯(lián)。
*Smalltalk五個(gè)基本特征:
1)萬物皆為對(duì)象。
2)程序是對(duì)象的集合,他們通過發(fā)送消息來告知彼此所要做的。
3)每個(gè)對(duì)象都有自己的有其他對(duì)象所構(gòu)成的存儲(chǔ)。
4)每個(gè)對(duì)象擁有其類型。
5)某個(gè)特定類型的所有對(duì)象都可以接收同樣的消息。
*Java用三個(gè)關(guān)鍵字在類內(nèi)部設(shè)定邊界:public,private,protected。還有一種默認(rèn)的訪問權(quán)限,叫做包訪問權(quán)限。
*有兩種方法可以使基類與導(dǎo)出類產(chǎn)生差異
1)直接在導(dǎo)出類中添加新方法。
2)用覆蓋(overriding)改變現(xiàn)有基類的方法。
*把導(dǎo)出類看做是它基類的過程稱為向上轉(zhuǎn)型
*單根繼承,所有的對(duì)象都具有一個(gè)公共接口。