1. 程式人生 > >面向物件程式設計基礎總結

面向物件程式設計基礎總結

.面向物件程式設計基本特性

1.一切都是物件

2.程式是物件的集合,物件間通過傳送訊息告訴對方要做的事情

3.物件是類的例項

.物件是服務的提供者

程式本身是向用戶提供服務

因為程式通過呼叫物件的方法來提供服務,所以當開始設計程式時,我們可以問自己,要完成的需求是怎麼樣的?需要哪些物件去解決這個問題?系統現在提供的預定義物件哪些我們可以用?我們還需要建立哪些物件,這些物件能提供什麼操作,他們還需要藉助那些物件來幫他們解決問題?通過將問題分解為物件集合進行思考

.怎麼產生可複用的物件

需要豐富的經驗和敏銳的洞察力

在建立類時,先考慮組合,因為其簡單靈活;再用繼承

組合:指AB的一部分

繼承:AB的一種型別,子類繼承父類的方法和屬性,子類依賴於父類的實現細節,如果父類產生了變更,子類的後果將不堪設想。

.面向物件的三大特徵

繼承(extends)

多型:使用介面實現多型,只是告訴使用的物件,你能夠去做某些操作,具體你怎麼實現我不管。

封裝:使用訪問許可權修飾符進行修飾,保護資料安全

五後期繫結

後期繫結:當向物件發訊息時,只有程式執行時才能某個方法具體是執行了哪個物件中的程式碼

六、java是單繼承

所有類的基類是object

,容器

我們知道用陣列儲存物件,必須知道有多少個物件。但是某些程式執行時,我們不知道該程式會需要多少物件,這些物件要存活多久,所以我們不知道用多少空間來儲存物件

.之前我們說過,oop是通過物件進行通訊和儲存的,所以別人就建立新的物件型別,用來儲存這些執行時產生的物件的地址,這個新的物件型別就是容器。

容器主要用來儲存物件和資料,根據不同的需求有不同的容器(List:用於儲存序列;Map:建立物件間的關聯;Set:不能重複),不同容器具有不同的行為,且執行效率不同,對系統性能影響也不同

.物件的生命週期

物件什麼時候生成

java使用動態記憶體分配:當需要建立新物件時使用new關鍵字進行建立

物件什麼時候銷燬

java提供了垃圾回收機制,他會自動發現物件何時不再被使用,並去銷燬物件,從而釋放該物件佔用的記憶體空間,問題:怎麼發現物件沒有被使用

.異常處理

異常也是一種物件,在出錯點會被丟擲

.併發程式設計

併發:指多個執行緒同時執行

多個執行緒訪問同一資源會出問題,怎麼解決?某個執行緒在使用資源時,對共享資源加鎖,當完成任務後,釋放鎖,讓其它執行緒使用