Java程式設計思想讀書筆記(一)對象導論
1. 内容
- 軟體設計原則:高内聚和低耦合
- 每個對象都隻能滿足某些請求,這些請求由對象的接口(interface)定義。
- 每個對象都能很好的完成一項任務,而不試圖做更多的事。
- 通路控制的存在原因:
- 用戶端程式員(調用别人寫好的類庫的程式員)不能調用他們不應該調用的方法
- 寫庫的大佬可以改變類内部的工作方式,而不用擔心會影響用戶端程式員
- 通路權限:public、預設(包權限)、ptotected、private
- UML中每個類用一個方框表示,類名在方框的頂部,資料成員在中間,方法在底部。通常隻有類名和公共方法被顯示于UML設計圖中。
- 建立新類時應該首先考慮組合——一個類是另一個類的成員對象
- 繼承
- 子類與父類有差異的方式:
- 判斷是否繼承,要确定是否可以用 is-a 來描述類之間的關系,例如:點是一個幾何形狀。
- 在子類中添加了新方法構成了is-like-a關系,由于父類無法通路子類新添加的方法。
- 後期綁定
- 非OOP程式的編譯器産生的函數調用會引起前期綁定,即運作時直接加在這個函數的絕對位址。而OOP采用後期綁定,調用的函數隻有在運作時候才能确定,編譯器隻保證調用方法的存在,對調用函數和傳回值進行檢查,但是不知道将被執行的确切代碼(不提供此類保證的語言稱為弱類型)。
- 為了這樣的機制能夠正确執行,java使用一小段特殊的代碼來代替絕對位址調用,以此用來計算真正調用的方法體的位址。
- 向上轉型
- 單根繼承結構
- 除了c++,所有的oop語言所有的類都繼承自一個終極基類,java中是Object。
- 好處:
- 所有對象都可以在堆上面很輕易的建立
- 參數傳遞得到了極大的簡化
- 使得垃圾回收機制的實作變得容易了很多,所有的對象都有具體的類型資訊,不會發生因為無法确定類型而陷入僵局
- 容器
- Internet
100) ? false:true" x-data="topBtn" @click="scrolltoTop" x-cloak>