什麼是面向對象?
面向對象是一種思想,世間萬物都可以看做一個對象,這裏只討論面向對象編程(OOP),
Java 是一個支持併發、基於類和麪向對象的計算機編程語言。
面向對象軟件開發具有以下優點:
- 代碼開發模塊化,更易維護和修改。
- 代碼複用性強。
- 增強代碼的可靠性和靈活性。
- 增加代碼的可讀性。
面向對象的特徵?
四點:封裝、繼承、多態、抽象。
1)封裝
封裝,給對象提供了隱藏內部特性和行爲的能力。對象提供一些能被其他對象訪問的方法來改變它內部的數據。
在 Java 當中,有 4 種修飾符: default
、public
、private
和 protected
。
每一種修飾符給其他的位於同一個包或者不同包下面對象賦予了不同的訪問權限。
下面列出了使用封裝的一些好處:
- 通過隱藏對象的屬性來保護對象內部的狀態。
- 提高了代碼的可用性和可維護性,因爲對象的行爲可以被單獨的改變或者是擴展。
- 禁止對象之間的不良交互提高模塊化。
2)繼承
繼承,給對象提供了從基類獲取字段和方法的能力。繼承提供了代碼的重用行,也可以在不修改類的情況下給現存的類添加新特性。
3)多態
多態,是編程語言給不同的底層數據類型做相同的接口展示的一種能力。一個多態類型上的操作,可以應用到其他類型的值上面。
4)抽象
抽象,是把想法從具體的實例中分離出來的步驟,因此,要根據他們的功能而不是實現細節來創建類。
Java 支持創建只暴露接口而不包含方法實現的抽象的類。這種抽象技術的主要目的是把類的行爲和實現細節分離開。
面向對象和麪向過程的區別?
- 面向過程
- 優點:性能比面向對象高,因爲類調用時需要實例化,開銷比較大,比較消耗資源。比如,單片機、嵌入式開發、Linux/Unix 等一般採用面向過程開發,性能是最重要的因素。
- 缺點:沒有面向對象易維護、易複用、易擴展。
- 面向對象
- 優點:易維護、易複用、易擴展,由於面向對象有封裝、繼承、多態性的特性,可以設計出低耦合的系統,使系統更加靈活、更加易於維護。
- 缺點:性能比面向過程低。