「Java」「enum列舉」 Chapter4 Question4

Given:
interface Alarm{
 void alarm();
}
enum Direction implements Alarm{
 UP("Direction UP"){
  public void alarm() {
   System.out.println("Go Up");
  }
 },
 DOWN("Direction DOWN");
  public void alarm() {
   System.out.println("Go Down");
  }
 private String side;
 private Direction(String d) {
  side = d;
 }
 @Override
 public String toString() {
  return side;
 }

}
public class Test1 {
 public static void main(String[] args) {
  System.out.println(Direction.UP.toString());
  System.out.println(Direction.DOWN);
  Direction.UP.alarm();
  Direction.DOWN.alarm();

 }
}

Answer:
...
Question:
Which four are ture about enums?

Choose:
1. An enum is typesafe.
2. An enum cannot have public methods or fields.
3. An enum can declare a private constructor.
4. All Enums implicitly implement Comparable.
5. An enum can subclass another enum.
6. An enum can implement an interface.

Answer:


解析:
1. 對,列舉是一種型態安全(type-safe)的概念,與泛型理念相似。
2. 錯,每個列舉項目等同於類別的物件欄位,自然也具備建構子、屬性、方法
3. 對,列舉項目的實例建立方式特別,須符合 public + static + final。因此,建構子宣告必須是private,預設也是private
4. 列舉具備一般物件實例該具備的所有功能,如: equals() 、 hashCode()、toString()
5. 錯,列舉已經暗中繼承java.lang.Enum,因此不能在繼承其他類別
6. 對,列舉可實作其他介面

留言

這個網誌中的熱門文章

[Excel]國曆轉農曆VBA

「CSS」「div區塊介紹」 三欄式網頁排版設計

「生活」眉毛觀人