1. 程式人生 > >黑馬程式設計師 Java列舉

黑馬程式設計師 Java列舉

----------android培訓java培訓、java學習型技術部落格、期待與您交流!----------

 為什麼要有列舉

       列舉就是要讓某個型別的變數的取值只能為若干個固定值中的一個,否則,編譯器就會報錯。列舉可以讓編譯器在編譯時就可以控制源程式中填寫的非法值,普通變數的方式在開發階段無法實現這一目標。

列舉就相當於一個類,其中也可以定義構造方法、成員變數、普通方法和抽象方法。

列舉元素必須位於列舉體中的最開始部分,列舉元素列表的後面要有分號與其他成員分隔。把列舉中的成員方法或變數等放在列舉元素的前面,編譯器就會報錯。

列舉只有一個成員時,就可以作為一種單例的實現方式。

 

用普通類如何實現列舉功能,定義一個Weekday的類來模擬列舉功能

1私有的構造方法

2每個元素分別用一個公園的靜態成員變數表示

3可以有若干公有方法或抽象方法,例如要提供nextDay方法必須是抽象的。 採用抽象方法定義nextDay就將大量的if.else語句轉移成了一個個獨立的類。

public class WeekDay {
   
 private WeekDay(){}
 public final static WeekDay SUN=new WeekDay();
 public final static WeekDay MON=new WeekDay();
 
 public WeekDay nextDay(){
  if(this==SUN){
   return MON; 
  }else{
   return SUN;
   }
  
 }
 
 public String toString(){
  
  return this==SUN?"SUN":"MON";
 }
 
 
 
 
}

列舉的基本應用
 

public class EnumTest {
 
	  public static void main(String[]args){
		  WeekDay1 weekDay=WeekDay1.MON;
		  System.out.println(weekDay.nextDay());
		  
		  WeekDay weekDay2=WeekDay.FRI;
		  System.out.println(weekDay2);
		  System.out.println(weekDay2.name());
		  System.out.println(weekDay2.ordinal());
		  System.out.println(WeekDay.valueOf("SUN").toString());
		  System.out.println(WeekDay.values().length);
	  }
	  public enum WeekDay{
		  SUN,MON,TUE,WED,THI,FRI,SAT
	  }
}

總結:把列舉中的成員方法或變數等放在列舉元素的前面,編譯器就會報錯。

----------android培訓java培訓、java學習型技術部落格、期待與您交流!----------