程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2SE >> 在Eclipse 3.1中體驗J2SE 5.0的新特性: 第一部分 :枚舉類型(4)

在Eclipse 3.1中體驗J2SE 5.0的新特性: 第一部分 :枚舉類型(4)

編輯:J2SE

1.3 枚舉類型的應用

下面各小 節介紹了枚舉類型的各種應用.

1.3.1循環(Iteration)

當我們寫程序時 ,常常遇到對數組或列表裡的每一個對象進行處理的情況.在J2SE 5.0以前,如果要在一 個數組或列表裡進行輪循時,我們的做法比較繁瑣,需要借助Java.util.Iterator 類, 如下所示:

清單5:

List prioritIEs = Priority.values().;
for (Iterator iter = prioritIEs.iterator(); iter.hasNext();) {
   Priority p = (Priority) iter.next();
  process(p);
}

現在我們可以通過J2SE 5.0 的for/in loop和枚舉類型一起使用. 這能使以前花很多時間 寫的程序簡單化,如上面清單5的程序可簡化為:

清單6:

for (Priority g: Priority.values()){
  process(g);
}

我們 把上面的偽代碼寫成程序在Eclipse3.1上運行,如下圖所示,在右下控制平台視圖裡顯示 了運行結果.如果看不見控制平台,點擊Window->Other VIEws->Console, 控制平 台就會出現在右下角.

圖6 枚舉類型在循環中的應用

我們 在使用for/in loop 時要求它的表達式要求必須是數組或者是實現了Java.lang.Iterable 的集合,而枚舉類型的values()函數返回的就是一個數組.另外循環變量的聲明必須是在 loop裡, 包括變量類型和變量名.

我們不能在循環裡使用一個在循環之外聲明的變量.這和J2SE 5.0以前for loop 裡用 的循環變量的聲明不同.

1.3.2 轉換(Switch)

我們常用的一種判斷語句就是Switch-case 語句. 在Switch 語句中使用枚舉類型,不 僅能簡化程序,而且增強了程序的可讀性.

清單8.

File1: Task.Java
public class Task {
Priority myPriority;
public Task (Priority p) {
   myPriority=p;
}
public Priority getPriority(){
   return myPriority;
}}
File2: TestSwitch.Java
public class TestSwitch (
  Task task = new Task(Priority.Medium);
  switch (task.getPriority( )) {
case High:
    //do case High
       break;
    case Midum: // fall through to Low
    case Low:
    //do case Low
       break;
default: throw new AssertionError("Unexpected enumerated value!");
    }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved