Java中的枚舉與泛型


      本周初步認識了下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類型的對象。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM