1. 程式人生 > >java泛型,內部類,列舉型別

java泛型,內部類,列舉型別

(1)泛型
JDK1.5之後增加的新功能,泛型可以解決資料型別的安全性問題,他主要的原理,是在類宣告的時候通過一個標識表示類中某個屬性的型別或者是某個方法的返回值及引數型別。
格式:訪問許可權 class 類名稱<泛型,泛型...>{
屬性 方法}

泛型方法:訪問許可權 <泛型標識>泛型標識 方法名稱(泛型標識 引數名稱)

(2)內部類
在另一個類中定義的類
內部類作用
1、內部類提供了更好的封裝。只能讓外部類直接訪問,不允許同一個包中的其他類直接訪問。
2、內部類可以直接訪問外部類的私有屬性,內部類被當成其外部類成員。當外部類不能訪問內部類的內部屬性。
內部類的使用場合:由於內部類提供了更好地封裝性,並且可以很方便的訪問外部類的屬性。所以,通常內部類只在所外部類提供服務的情況下優先使用。
內部類分類:成員內部類 匿名內部類 區域性內部類(極少使用)

(3)自動裝箱和拆箱
自動裝箱:基本型別自動地封裝到與它相同型別的包裝中
eg:Integer i = 100;
本質上是編譯器編譯時為我們添加了
Integer  new Integer(100);
自動拆箱:包裝類物件自動轉換成基本型別資料
eg:int a = new Integer(100);
本質上是編譯器編譯時為我們添加了
int a = new Integer(100).intValue();
緩衝問題:【-128,127】之間的數,仍然當作基本資料型別處理。


(4)列舉型別
eg:public enum Color{
RED,BLUE,BLACK,YELLOW,GREEN}
enum很像特殊的class,實際上enum宣告定義的型別就是一個類
這些類都是類庫中Enum類的子類,它們繼承了Enum中許多有用的方法
列舉值都是public static final的,也就是常量,因此列舉類中的列舉值應全部大寫。
列舉型別是class,在列舉型別中有構造器,方法和欄位,當列舉的構造器有很大的不同,列舉的構造器只在構造列舉值的時候被呼叫,構造器私有private,不允許有public構造器
列舉可以在switch語句中使用