如何理解面向對象?java
什麼是面向對象,面向對象其實就是一種設計模型。不用理解太多,這裏不是最重要。android
面向對象的基本特徵如何理解?算法
1)抽象:將相同事物抽象出來成爲一種數據結構,或者是用類(面向對象),或者是用結構體(面向過程)好比KNN算法,求解測試樣本的k個鄰接點,這k個鄰接點,甚至整個鄰接點均可以抽象出來一種數據結構。在好比決策樹算法中,構建決策樹,因爲一個決策樹有多個結點,結點和結點之間互相生成。首先要抽象出結點的數據類型,這就是抽象。編程
2)封裝:封裝的好處就是使離散的數據總體化,將離散的數據組織起來,利於管理。在使用的時候,一個是使用方面,二個語意理解容易。好比說咱們傳參數的時候,你傳個對象,就比傳多個參數就好,由於你要調用的是多個參數。例如在hibernate中常常把取出的記錄,封裝到javabean中,再或者Struts中,常常講輸入的數據封裝到表單中,都是體現了封裝的思想。設計模式
3)繼承:繼承體現了代碼的複用性提升了,繼承體現了is a的特性,好比吧,人和老人,兒童,老人和兒童 all is people ,接口體現了 like a的特性,好比貓和狗,他們都會睡覺,他們之間有相同的行爲,就能夠理解他們之間很像。數據結構
4)多態:是指在執行期間判斷所引用對象的實際類型,根據其實際的類型調用其相應的方法。在傳參數的時候,能夠接受多種相關類型的參數。框架
面向對象中一些基本概念和術語理解ide
可複用性(可重用性):;舉個例子,在j2ee中,常常會出現多個service調用一個dao,那個dao的複用性就獲得了大大的提升了。這樣的話,分層很好,維護更加容易。測試
設計模式如何理解?大數據
1)常見的基本原則,這些原則具備指導性,後期的設計模式在設計的時候,它都遵循了必定的規範,但千萬不要爲基本原則所累,瞭解下,體會下,領悟下,就能夠了。
2)理解真正的設計模式,有助於對網站,android,各類開發框架,甚至是大數據各個平臺和軟件維護都有更好的理解,真正理解了它,若是在懂算法的話,你就能夠真正的去有讀源碼的功底了,若是達到這樣的話,你的編程水平,就不是普通級別的人了。