1、面向對象思想
面向對象是基於面向過程的編程思想
面向過程:強調的是每一個功能的步驟
面向對象:強調的是對象,然後由對象去調用功能
2、面向對象的思想特點
一種更符合我們思想習慣的思想
可以將複雜的事情簡單化
將我們從執行者變成了指揮者
3、面向對象開發
不斷的創建對象,使用對象,指揮對象做事
4、面向對象設計
管理和維護對象之間的關係
5、面向對象的特徵
封裝:隱藏對象的屬性和實現細節,僅對外提供公共的訪問方式
封裝的好處:
1、隱藏實現細節,對外提供公共訪問方式
2、提高了代碼的複用性
3、提高了安全性
繼承:繼承是指從已存在的類中定義性的類
java繼承特點:單繼承、多層繼承體系。即一個類只能有一個父類,但父類還可以有父類
繼承的好處:
1、提高了代碼的複用性
2、提高了代碼的維護性
3、讓類與類之間產生了關係,是多態的前提(同時也是弊端,增加了代碼的耦合性)
多態:同一個對象在不同時刻表現出不同的狀態(父類的變量可以引用子類對象的現象)
多態的前提:
(1) 有繼承關係
(2) 子類重寫父類方法
(3) 父類變量引用子類對象
多態的好處:
(1) 提高了代碼的維護性(繼承保證)
(2) 提高了代碼的擴展性
多態的弊端
只能使用父類定義過的方法,不能夠使用子類的特有方法
注意:
多態中訪問變量時,使用的是父類的成員(成員變量和成員函數),而方法存在重寫,所以調用的是子類的方法(靜態方法除外)
6、繼承中成員的關係
成員變量:子類不能繼承父類的私有成員變量(也有人認爲子類能夠繼承父類的私有成員變量,只是因爲權限不夠,所以不能調用。因爲在子類中調用父類的私有成員變量的時候編譯器報的並不是“找不到符號”,而是報的權限錯誤)。
構造方法:子類不能繼承父類的構造方法,但是在子類的構造方法中都會默認調用父類的無參構造方法(因爲子類可能會使用父類數據,所以在子類初始前必須先完成父類數據的初始化),如果父類沒有無參構造函數,子類在編譯時會報錯。可以 (1) 爲父類添加無參構造方法; (2) super(..) 調用父類有參構造方法; (3) this() 調用其他本類構造函數,但是該構造函數中必須調用了父類的構造函數
成員方法:子類不能繼承父類的私有方法