一 對象導論
java學習 對象導論
1.對象的抽象過程
所有的編程語言都提供抽象機制。可以認為,解決問題的復雜性直接取決於抽象的類型和質量。
▲面向對象程序設計方式的特性:
1)萬物皆對象。你可以抽象待解決問題的任何概念化構件。
2)程序是對象的集合,它們可以通過發送消息來告知彼此所要做的。
3)每個對象都有自己的由其他對象所構成的存儲。
4)每個對象都擁有其類型
5)某一特定類型的所有對象都可以接受同樣的信息
2.每個對象都有一個接口
接口確定了對某一特定對象所能發出的請求。
3.每個對象都提供服務
把對象想象成“服務提供者”。
目標就是去創建(或者最好是在現有代碼庫中尋找)能夠提供理想的服務來解決問題的一系列對象。
把對象看作是服務提供者還有一個好處就是:有助於提高對象的內聚性。
高內聚是軟件設計的基本質量要求之一:這意味著一個軟件構件的各個方面“組合”得很好。
4.被隱藏的具體實現
訪問控制的兩個原因:
一個是讓客戶端程序員無法觸及他們不該觸及的部分。
另一個是允許庫設計者可以改變類內部的工作方式而不用擔心影響到客戶端程序員。
Java用三個關鍵字在類的內部設定邊界:public、private、protected
public表示緊隨其後的元素對任何人都是可用的。
private表示除類型創建者和類型的內部方法之外的任何人都不能訪問的元素。
protected和private的作用相當,僅區別在於繼承的類可以訪問protected成員而不能訪問private成員。
如果不用任何反問指定詞時為包訪問權限,即類可以訪問在同一個包(庫構件)中的其他類的成員。
5.復用的具體實現
復用:直接使用一個類的一個對象。
創建成員對象:將一個類的一個對象置於一個新的類中。
組合:使用現有的合成新的類。
如果組合是動態發生的,那麽成為“聚合”。
組合經常被視為“has-a”(擁有)關系。
在組合中,新類中對象通常被聲明為private,使使用新類的客戶端程序員不能訪問他們。這樣使你可以在不幹擾現有的客戶端代碼的情況下修改這些新類的成員。
6.繼承
一 對象導論