博爲峯Java面試題-Java 面向對象

[面試原題]面試

[題目]  什麼是面向對象,Java語言面向對象有那些特色?編程

[正確答案]編程語言

博爲峯小博老師佈局

面向對象是把構成問題事務分解成各個對象,創建對象的目的不是爲了完成一個步驟,而是爲了描敘某個事物在整個解決問題的步驟中的行爲。設計

例如五子棋,面向對象的設計則是從另外的思路來解決問題。整個五子棋能夠分爲 一、黑白雙方,這兩方的行爲是如出一轍的,二、棋盤系統,負責繪製畫面,三、規則系統,負責斷定諸如犯規、輸贏等。第一類對象(玩家對象)負責接受用戶輸入,並告知第二類對象(棋盤對象)棋子佈局的變化,棋盤對象接收到了棋子的i變化就要負責在屏幕上面顯示出這種變化,同時利用第三類對象(規則系統)來對棋局進行斷定。code

能夠明顯地看出,面向對象是以功能來劃分問題,而不是步驟。對象

功能上的統一保證了面向對象設計的可擴展性。好比我要加入悔棋的功能。只用改動棋盤對象就好了,棋盤系統保存了黑白雙方的棋譜,簡單回溯就能夠了,而顯示和規則判斷則不用顧及,同時整個對對象功能的調用順序都沒有變化,改動只是局部的。繼承

面向對象的編程語言的4個特色:接口

1.封裝:事件

封裝是面向對象編程的核心思想,將對象的屬性和行爲封裝起來,而將對象的屬性和行爲封裝起來的載體就是類,類一般對客戶隱藏其實現細節,這就是封裝的思想。例如,用戶使用電腦,只須要使用手指敲擊鍵盤就能夠實現一些功能,用戶無須知道電腦內部是如何工做的,即便用戶可能碰巧知道電腦的工做原理,但在使用電腦時並不徹底依賴於電腦工做原理這些細節。

2.抽象:

抽象是從衆多的事物中抽取出共同的、本質性的特徵,而捨棄其非本質的特徵。例如蘋果、香蕉、生梨、葡萄、桃子等,它們共同的特性就是水果。得出水果概念的過程,就是一個抽象的過程。

3.繼承:

類與類之間一樣具備關係,如一個百貨公司類與銷售員類相聯繫,類之間這種關係被稱爲關聯。關聯是描述兩個類之間的通常二元關係,例如一個百貨公司類與銷售員類就是一個關聯,再好比學生類以及教師類也是一個關聯。兩個類之間的關係有不少種,繼承是關聯中的一種。

4.多態:

多態性容許以統一的風格編寫程序,以處理種類繁多的已存在的類以及相關類。該統一風格能夠由父類來實現,根據父類統一風格的處理,就能夠實例化子類的對象。因爲整個事件的處理都只依賴於父類的方法,因此往後只要維護和調整父類的方法便可,這樣下降了維護的難度,節省了時間。在提到多態的同時,不得不提到抽象類和接口,由於多態的實現並不依賴具體類,而是依賴於抽象類和接口。

相關文章
相關標籤/搜索