面試常考 類 物件 介面 繼承 多型 異常 多執行緒 集合框架 泛型 IO流
阿新 • • 發佈:2019-02-17
(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型資料。