java對象導論之抽象過程
簡單的講,抽象指在一些事物中選取其共有的特徵,摒棄每個事物獨有的特點,抽取成衆多事物所屬的一個基礎事物的過程。
所有編程語言都提供抽象機制,解決問題的難易程度可以取決於抽象中,抽象成了一個怎樣的基礎事物。
換句話講,抽象也可以指我們從業務中的元素如何表示在程序中的過程。這種思想的實質就是程序可以通過添加新類型的對象使自己可以解決某種特定的問題。
純粹OOP的特性:
-
1、萬物皆爲對象
理論上講,任何事物都可以類比成有特性和行爲的對象。例如人的特性:性別有男/女,行爲:可以喫飯睡覺打豆豆。
-
2、程序是對象的集合,它們通過發送消息來告知彼此所要做的
可以把中間的消息理解爲方法的調用。
-
3、每個對象都有自己的由其他對象所構成的存儲
可以簡單理解爲,拿其他新建類型的對象充當自己的屬性。
-
4、每個對象都擁有其類型
每個對象都是某個class的實例。
-
5、某一特定類型的所有對象都可以接收同樣的消息
舉例:“圓形”類型的對象同時也是“幾何形”類型的對象,所以一個“圓形”對象必定能收到發給“幾何形”對象的消息。這就意味着可以編寫與“幾何形”交互並自動處理所有與“幾何形”性質相關的事物的代碼。
Booch提出:對象具有狀態,行爲和標識。狀態:擁有的內部數據,行爲:方法,標識:就是每個對象在內存中都有一個唯一的地址。