閱讀java編程思想的總結(一)
學而不思則罔,思而不學則殆
一、對象(Object)
1、機器模型(方案空間),實際解決問題的問題模型(問題空間)。
2、我們將問題空間中的元素以及它們在方案空間的表示物稱為“對象”(Object)。
3、OOP(面向對象編程)允許我們根據問題來描述問題,而不是根據方案。
4、與現實世界中的“對象”或“物體”相比,編程“對象”也有他們自己的特征和行為。
二、Java面向對象程序設計方法
1、所有的東西都是對象,可將對象想象成一種新型變量,它保存著數據,可以要求它對自身進行操作。
2、程序是一大推對象的組合,通過消息傳遞(比如方法調用),各個對象知道自己該做些什麽。
3、每個對象都有自己的存儲空間,也可以容納其它對象(其它對象必須是private)。
4、每一個對象有一種類型。一個類的最重要特征是能將什麽消息發送給它。
5、同一類所有對象都能接收相同的消息。
三、接口(interface)
1、現實世界中,每一種類都有它自己的特征與行為,比如說人類,有黑人,白人等特征;人能說話,能直立行走這些行為等。
2、程序世界裏,每一個對象都隸屬一個特定的“類”,這個類也有自己的行為和通用特征。
3、所以,在面向對象編程中,我們要建立各種各樣的類(class),可根據實際情況生成許多對象 。隨後這些對象作為要解決的問題在元素中處理。
4.、如何在問題空間的元素與方案空間的元素之間建立理想的一一對應或映射關系?這就有了接口(interface)的出現。每個對象都能接收特定的請求,我們想對象發出的請求的通過它的接口(interface)來定義的,對象的類規定了它的接口形式。類與接口的等價或對應關系是面向編程設計的基礎。
以燈泡為例子,有開燈、關燈、調亮、調暗等接口。而要調用的話,需要創建(new)一個對象,通過對象的句柄去調用。
四、方案實現的隱藏
1、說白了就是訪問控制
同一個類 | 同一個包 |
不同包的子類 | 不同包的非子類 | |
public | 可以訪問 | 可以訪問 | 可以訪問 | 可以訪問 |
protect | 可以訪問 | 可以訪問 | 可以訪問 | |
default | 可以訪問 | 可以訪問 | ||
private | 可以訪問 |
2、方案的重用,許多人認為設計方案的重用是面向對象程序設計提供的最偉大的一種杠桿。我們把那些公共的方法拿出來封裝成一個接口,然後提供給其它需要的對象繼承重復使用。
3、繼承(extends),重新使用接口。比如說父類有能跑的方法,當子類繼承了父類之後,子類除了自己的方法外,還多了一個父類的方法。我們可以改善父類方法函數的行為,也可以直接繼承它的行為。
4、對象的創建和存在時間。
閱讀java編程思想的總結(一)