1. 程式人生 > >面試常考 類 物件 介面 繼承 多型 異常 多執行緒 集合框架 泛型 IO流

面試常考 類 物件 介面 繼承 多型 異常 多執行緒 集合框架 泛型 IO流

(6)多型的出現程式碼的特點: 在多型中,(非靜態)成員函式的特點, 在編譯時期(javac):參閱引用型變數所屬的類中是否有呼叫的方法。如果有,編譯通過,如果沒有,編譯失敗。 在執行時期(java):參閱物件所屬的類中是否有呼叫的方法。   多型時就是:         父 a=new 子(); 在多型中,成員變數的特點:無論編譯或執行,都參考左邊(引用型變數所屬的類) 在多型中,靜態函式的特點:無論編譯或執行,都參考左邊(引用型變數所屬的類) 簡單總結:成員函式在多型呼叫時,編譯看左邊,執行看右邊。 (7) Outer.Inner in=new Outer().new Inner();//沒有被static修飾時,這樣建立內部類的物件。 Outer.Inner a=new Outer.Inner();//當內部類被static修飾時,這樣建立內部類的物件 (8)介面中的成員都有固定修飾符。     常量:public static final      方法:public abstract (9)介面中所有的抽象方法都必須被實現它的子類複寫。 (10)List集合判斷元素是否相同,依據的是元素的equals方法。而一般的equals方法都是比較的兩個物件的地址值。 有必要時子類可以複寫該方法滿足自己判斷是否相等的條件。 (11)java ee ide jms jmx jndi (12)import java.util.*; class CollectDemo { public static void main(String[] args) { //把集合轉陣列。 /*ArrayList<String> al=new ArrayList<String>(); al.add("linger"); al.add("xuejian"); al.add("longkui"); String[] arr=al.toArray(new String[al.size()]); for(String s:arr) { System.out.println(s); }*/ //把陣列轉集合。 String[] arr=new String[4]; arr[0]="linger"; arr[1]="linyueru"; arr[2]="anu"; arr[3]="xiaolan"; List list=Arrays.asList(arr); System.out.println(list); } } 330、面向物件的特徵? 主要有以下四方面: 1.抽象:抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了
解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是資料抽象。 2.繼承:繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。物件的一個新類可 以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為 新類的基類(父類)。派生類可以從它的基類那裡繼承方法和例項變數,並且類可以修改或增加新的方法使之更適合特殊的 需要。 3.封裝:封裝是把過程和資料包圍起來,對資料的訪問只能通過已定義的介面。面向物件計算始於這個基本概念,即現實世 界可以被描繪成一系列完全自治、封裝的物件,這些物件通過一個受保護的介面訪問其他物件。
4.多型性:多型性是指允許不同類的物件對同一訊息作出響應。多型性包括引數化多型性和包含多型性。多型性語言具有靈 活、抽象、行為共享、程式碼共享的優勢,很好的解決了應用程式函式同名問題。 位元組流FileInputStream中的read方法,用到的是位元組陣列byte【】 而FileReader中的read方法,用到的是字元陣列char【】 這兩個流中的read()方法,都是返回的int型資料。