可變參數(shù)
JDK中具有可變參數(shù)的類Arrays.asList()方法芳室。
分別傳多個參、傳數(shù)組刹勃,傳數(shù)組又傳參的情況堪侯。
注意:傳入基本數(shù)據(jù)類型數(shù)組的問題。
從JDK 5開始, Java 允許為方法定義長度可變的參數(shù)荔仁。
語法:數(shù)據(jù)類型…變量名铣耘。
可變長參數(shù)是Object[] 數(shù)組戏售。(可變參數(shù)里存的是對象數(shù)組)
JDK中的典型應(yīng)用:
Arrays.asList(T…a)是jdk中的典型應(yīng)用先朦。
需求:對若干個整數(shù)進行求和
可變參數(shù)的細節(jié)
1似炎、聲明:
在一個方法中,最多只能有一個可變參數(shù)遇骑∽揖粒可變參數(shù)只能放在參數(shù)列表的最后面。
2质蕉、調(diào)用:
當(dāng)使用可變參數(shù)時势篡,可以傳0或多個參數(shù)翩肌。當(dāng)使用可變參數(shù)時,也可以傳一個數(shù)組進去禁悠,就表示多個參數(shù)念祭。
3、使用:
在方法內(nèi)部使用時碍侦,就是在使用一個數(shù)組粱坤。當(dāng)調(diào)用時沒有傳參數(shù)時(傳了0個),這時在方法內(nèi)部的參數(shù)數(shù)組是有值的(不為null)瓷产,但長度為0.
四站玄、對象包裝器與自動打包
對象包裝器和自動裝箱
有時,需要將int這樣的類型轉(zhuǎn)化為對象濒旦。所有的基本類型都有一個與之對應(yīng)的類株旷。例如,Integer類對應(yīng)基本類型int尔邓。通常晾剖,這些類稱為包裝器(wrapper)。這些對象包裝器擁有很明顯的名字:Integer梯嗽、Long齿尽、Float、Double灯节、Short循头、Byte、Character炎疆、Void和Boolean(前6個類派生于公共的超類Number)卡骂。對象包裝器類是不可變的,即一旦構(gòu)造了包裝器磷雇,就不允許更改包裝在其中的值。同時躏救,對象包裝器還是final唯笙,因此不能定義它們的子類。
五盒使、枚舉類
一些方法在運行時崩掘,它需要的數(shù)據(jù)不能是任意的,而必須是一定范圍內(nèi)的值少办,此類問題在JDK5以前采用自定義帶有枚舉功能的類解決苞慢,Java5以后可以直接使用枚舉予以解決。
JDK 5新增的 enum 關(guān)鍵字用于定義一個枚舉類英妓。
每一個枚舉值都是枚舉類的具體實例對象.只不過是靜態(tài)常量.
枚舉類具有如下特性:
1挽放、枚舉類也是一種特殊形式的Java類绍赛。
2、枚舉類中聲明的每一個枚舉值代表枚舉類的一個實例對象辑畦。
3吗蚌、與java中的普通類一樣,在聲明枚舉類時纯出,也可以聲明屬性蚯妇、方法和構(gòu)造函數(shù).
枚舉類也可以實現(xiàn)接口(序列化)、或繼承抽象類暂筝。
JDK5中擴展了swith語句箩言,它除了可以接收int, byte, char, short外,還可以接收一個枚舉類型(enum)焕襟。
繼承
1:描述一個學(xué)生類:姓名年齡學(xué)號屬性陨收,學(xué)習(xí)的方法
2:描述一個工人類:姓名年齡工號屬性,工作的方法
3:描述一個人類:姓名年齡屬性胧洒,說話的方法畏吓。
4:發(fā)現(xiàn)學(xué)生類和人類天生有著聯(lián)系,學(xué)生和工人都是人卫漫。所以人有的屬性和行為學(xué)生和工人都會有菲饼。出現(xiàn)類代碼重復(fù)故使用繼承減少代碼重復(fù)率。
繼承特點
1:描述類和類之間的關(guān)系
2:降低類和類之間的重復(fù)代碼
3:降低對象和對象之間的代碼重復(fù)使用靜態(tài)變量
4:降低類和類之間的代碼重復(fù)使用就繼承
extends關(guān)鍵字
繼承細節(jié)列赎;
1:類名的設(shè)定宏悦,被繼承的類稱之為父類(基類),繼承的類稱之為子類
2:子類并不能繼承父類中所有的成員
3:父類定義完整的成員 靜態(tài)成員包吝,非靜態(tài)饼煞,構(gòu)造方法。靜態(tài)變量和靜態(tài)方
法都可以通過子類名.父類靜態(tài)成員的形式調(diào)用成功诗越。
4:所有的私有成員不能繼承,private修飾的成員砖瞧。
5:構(gòu)造函數(shù)不能被繼承
super關(guān)鍵字
作用:
1:主要存在于子類方法中,用于指向子類對象中父類對象嚷狞。
2:訪問父類的屬性
3:訪問父類的函數(shù)
4:訪問父類的構(gòu)造函數(shù)