本周初步認識了下java中的枚舉與泛型。
先來說一下枚舉:
java語言中由關鍵字enum來定義一個枚舉類型。枚舉的特點是有限且固定的類,枚舉類是再JDK1.5版本中才引入的,存放在java.lang包中。
枚舉類型語法:
修飾符 enum 枚舉類型名稱{
常量1,常量2,.....常量n;
} 其中enum聲明為枚舉類型,程序體定義常量,當需要使用該常量時,可以用“類名.常量”來表示。
下面是枚舉類型的一些常用方法:
方法名稱 | 具體含義 | 使用方法 |
values() | 該方法可以將枚舉類型成員以數組的形式返回 | 枚舉類型名稱.values() |
valueOf() | 該方法可以實現將普通字符串轉換為枚舉實例 | 枚舉類型名稱.valueOf("abc") |
compareTo() | 該方法用於比較兩個枚舉對象在定義時的順序 | 枚舉對象.compareTo() |
ordinal() | 該方法用於得到枚舉成員的位置索引 | 枚舉對象.ordinal() |
枚舉類型中的構造方法:
語法:
修飾符 enum 枚舉類型名稱{
常量1(參數1,..參數n),...常量n(參數1,...參數n);
private 枚舉類型名稱([參數1..,參數n]){
//方法體
}
}
從枚舉類型構造方法的語法可以看出,無論是無參還是有參,修飾權限都為private。定義一個有參方法后,需要對枚舉類型成員相應地使用該構造方法。
泛型:
Java 泛型(generics)是 JDK 5 中引入的一個新特性, 泛型提供了編譯時類型安全檢測機制,該機制允許程序員在編譯時檢測到非法的類型。
泛型的本質是參數化類型,也就是說所操作的數據類型被指定為一個參數。
示例:
package FANXING;
public class Simple {
private Object ob;
public Simple(Object ob){
this.ob = ob;
}
public Object getOb() {
return ob;
}
public static void main(String[] args){
Simple simple1=new Simple("jav面向對象");
int age=(int)simple1.getOb();
System.out.println(age);
}
}
上述示例中,實例化Simple對象時,傳入的參數是字符串類型,使用這個參數,獲取的是int類型,兩者並不匹配,程序會拋出異常。這就出現一個安全隱患,而泛型有效地解決 了這一問題。
定義泛型類:
示例:
public class Simple<T>{
private T ob;
public Simple(T ob){
this.ob=ob;
}
public T getOb() {
return ob;
}
public static void main(String[] args){
Simple<String>simple1 = new Simple<String>("java面向對象");
String info=simple1.getOb();
Simple<Boolean>simple2 = new Simple<Boolean>(true);
boolean result=simple2.getOb();
}
}
上述示例中,在類名后添加了一個<T>語句,這就是泛型機制。可以將Simple類稱為泛型類,同時返回和接收的參數使用T這個類型。最后在主方法中可以使用Simple<String>形式返回一個String類型的對象,使用Simple<Boolean>形式返回一個Boolean類型的對象。