Posted on 2011-04-29 11:32
哈希 閱讀(298)
評論(0) 編輯 收藏 所屬分類:
java面試題
一、oop唯一關心的是接口是什么,就像就像汽車銷售商不需要管他是怎么制造的,只要關心他能不能燃燒燃料開動起來,只要知道(can or not)不要關心(how and why):
1、多態性:(java對象多態,java中不支持多重繼承)
允許不同類的對象最統一消息做出響應。多態性包括參數化多態和包含性多態性,多態性語言具有靈活抽象,行為共享的優勢,很好解決了應用函數同名問題.
2、封裝:(隱藏細節)
就是把把數據和行為結合在一起,并對對象使用者隱藏隱藏數據的實現過程,一個對象中的數據稱為它的實例字段(instance);
3、繼承:(擴展一個類)
允許在已經存在的類上構建新的類,當你繼承一個已經存在的類時候那么你就 復用了這個類的方法和字段,同時你可以在新類中添加心得方法和字段;
?4、class類(oop最重要的思想,類中構建一個對象,即創建這個類的一個實例)
為編寫可動態操縱java代碼的程序提供了強大的功能反射,這項功能為javaBeans特別所有,能夠分析類能力的程序角反射器,java中提供的功能包叫java.lang.reflect反射機制十分強大。
5、接口:(不是一個類,對符合接口要求的類的一套規范)
實現接口兩個步驟:1、聲明類需要實現的指定接口;
2、提供接口中所有接口的定義;
接口是一個收集方法和常數的契約,當類執行一個接口,他就許諾在那個接口中聲明的所有方法。接口是一個設備或者一個系統,它是用于交互的無關實體。根據這個定義,遠程控制是一個你和電視的接口,而英語是兩個人之間的接口。在java語言中接口是一種設備,它是用來與其他對象交互的設備。一個接口可能對一個協議是類似的,實際上其他語言也有接口,但是它們調用它的接口協議。
6、動態綁定(調用對象方法的機制)
(1)編譯器檢查對象聲明的類型和方法名;(2)編譯器檢查方法調用的參數類型;(3)靜態綁定:若方法類型為private static final編譯器會準確知道調用哪個方法;(4)程序需要調動一個方法時,那么虛擬機必須調用參數所指向的對象的實際類型相匹配的方法。
7、構造器(特殊的方法,構造對象并將其初始化)
構造器可以有0個,一個或多個,構造器和類有相同的名字,一個類可以右多個構造器,構造器沒有返回值,構造器總是和new字符一起運行的。
8、final類(系統級的類,不可擴展)
防止派生新類
9、equal(判斷兩個對象是否相等)
10、toString()返回一個代表該對象的字符串,幾乎每一個類都會重載該方法,返回當前狀態的正確表示;
11、通用編程:
任何類型的所有值都可以都可以用Object類型的變量來代替;
12、內部類:(定義在一個類的內部的類)
1、一個內部類的對象能夠訪問創建它的對象的實現,包括私有數據;
2、對于同一個包中的類,呢不累可以隱藏起來;
3、匿名內部類可以很方便的進行回調;
4、使用內部類可以很方便的編寫事件驅動程序;
13、代理類:(proxy)
A、指定接口要求所有代碼;
B、Object類定義的所有方法(equals,toString());