Java特性隨便看看(多態)
?
一、引用類型
?
??? 1、Java的數據類型
?
????? Java有8種基本數據類型:
?
????? 4種常用的:boolean、char、double、int
????? 另外的4種:byte、float、long、short
?
????? 對于基本類型是直接留出內存保存值,而其他所有的數據類型都是引用類型。
?
????? 所謂引用類型,即開始創建時只保存了它對某類型的引用。必須初始化之后才可以引用
?
??? 2、引用類型的相等性
?
????? 舉例說明:
?
????? Dog dog1 = new Dog()
????? Dog dog2 = Dog1
????? Dog dog3 = new Dog()
?
????? dog1 == dog2 正確
????? dog2 == dog3 錯誤
?
????? 一般會創建equals()方法,然后通過dog2.equals(dog3)來對比每一個值是否相同
?
??? 3、equals()方法
?
????? public boolean equals(Object that){
??????? if (this == that){
???????? return true;
??????? }
??????? if (that == null){
???????? reture false;
??????? }
??????? if (getClass() != that.getClass()){
???????? return false;
??????? }
??????? Die thatDie = (Die)that;
??????? return topFace == thatDie.topFace;
????? }
?
????? 注:1、首先把實例this==that的直接返回,不用再進去比較多個值
????????? 2、that=null時直接返回,不要去嘗試追隨null
????????? 3、比較類名,若不是同一各類就直接返回false
?
?
二、多態
?
??? 1、多態類型對象:
?
??? Object it;
??? it = new Dog();
??? it = new double[10];
?
??? 以上代碼都是正確的,Object類型的變量可以保存一個指向廣泛事物的引用。
??? Object是一個典型的多態類型(polymorphic type)
?
??? 2、基本類型包裝器
?
??? Object可以保存任何對象和數組,但是不能保存基本類型,所以需要包裝器類。
??? 針對8個基本類型的包裝器分別為:
?
??? Boolean、Byte、Character、Double、Float、Integer、Long、Short
?
??? 理論上需要用以下方法進行轉換:
?
??? Object k = new Integer(23);
??? int n = ((Integer)k).intValue();
?
??? 但是在1.5版本以后,可以直接省略為:
?
??? Object k = 5;
??? int n = (Integer)number;
?
?
三、數組
?
??? 1、數組的創建步驟
?
????? ① 聲明變量:int[] nums;
????? ② 分配空間:nums = new int[4];
????? ③ 初始化:int[0] = 1;
?
????? int[] nums = new int[]{0,1,2,3,4}
?
??? 2、多維數組
?
????? int[][] rows;
????? rows = new int[2][3];
?
????? 上例是由3個“含有4個值的數組”組成的數組,也可以理解為3行4列
?
????? 要取單獨一行:int[] middleRow = row[1];
????? 要單獨取一列:row[0] = new int[4];
?
?
四、接口
?
??? 接口跟類是很相似的,區別在于接口即沒有字段也沒有方法體,只指明了類的行為方式。接口的作用簡單一點就是:接口是用來標記類的,不同的類屬于不同的接口(通過向上轉型),管理接口比管理各種各樣的類方便多了,接口體現了抽象的觀點,什么是抽象?抽象就是“抽去像的部分”。
?
??? 實現接口:
?
??? public class FieldDomino implements Domino{
??? ...
??? }
?
五、重載
?
??? 接口、Object類型、數組類型,都是多態類型。
?
??? 不同種類的多態性就是重載
,即同名的方法,而傳入參數個數或種類不同
?
??? 不能重載某個類型包含的另一個類型參數,這樣輸入某個參數,兩種都成立。
?
??? 重載的作用在于可以減少我們必須記住的方法名稱的數量!
?
?
?