標籤:數組 怎麼 有序 學習 錯誤 編程 規範 學校 不同的
初學者可能在學習中會有很多疑惑,為什麼要這樣,明明可以那樣實現,這樣做的好處又是什嗎?
可能會的人覺得很簡單很容易理解,甚至可能覺得問的問題很智障,但對於小白來說可能是苦思冥想都不得其解的。
自己身為初學者也深知初學者的不易,很多問題網上沒有很明確的答案。
自己遇到什麼問題想出來後就寫下,也為了便於後來人,畢竟前人種樹後人乘涼。
初看容器時,有很多疑問,為什麼都用介面作為類型去實現?(List<lnteger> l = new ArrayList<>())
而不直接這樣寫?(ArrayList <Integer> i = new ArrayList<>())
我說一下我這個初學者的理解,如有錯誤之處還望指出,不勝感謝!
這時就可以把A介面看做是一種要完成的A功能的規範,實現它的A1類是完成A功能的一種方法,A2類也是完成A功能的一種方法。
然後再我們需要實現A功能時,我們需要根據具體情況的不同,採用不同的方法去實現這個功能。
這個思想更符合我們日常物件導向的思想,先想需要完成什麼功能,再想怎麼完成這個功能(根據當前情況選擇合適的方法去完成)。
例如我這裡需要儲存有序的資料,那我們先想如何?這個功能,當然是List介面。
然後根據我當前的具體情況再想,List介面下那個類更適合當前情況。
是數組(ArrayList),還是鏈表(LinkedList)方式儲存?
這需要結合這兩種存放方式的優缺點和當前具體需求去決定。
舉個更加通俗的例子:
假如我定義一個介面的功能是去圖書館,我再定義幾個實現該介面的類,
有教學樓到去圖書館的類,有食堂去圖書館的類,還有寢室去圖書館的類。
然後我們思考時是先想做什嗎?去圖書館,這就確定了介面是去圖書館的介面。
然後我們再想怎麼去,由於各個人的所在位置的不同,我們就需要根據當前所在位置的具體情況
去調用合適的類,我在寢室就用寢室去圖書館的類,我在食堂就調用食堂去圖書館的類。
假如學校擴大了,多了幾個分校區。去圖書館這個介面我們不需要改動。
只需要添加一個實現了(去圖書館介面)的(分校區去圖書館的類)就可以了。(類實現介面)
這樣一個具體的功能確定了,即使後來有新的情況需要完成這個功能,我們只需要添加新的類就可以了。
因為功能的確立基本是不變的,是具有普適性的。
介面是一個抽象的廣泛的概念,更像是一種宏觀上的東西。
先確定好宏觀層面的東西(介面),然後再想微觀上具體如何?(實現該介面的類),後續有新的微觀可以直接加入,因為這個微觀也是從屬於這個宏觀的。
java 面向介面編程的理解