顯示具有 列舉 標籤的文章。 顯示所有文章
顯示具有 列舉 標籤的文章。 顯示所有文章

2009年12月11日 星期五

JAVA筆記-列舉當一般類別,可用抽象方法和實做

列舉用抽象方法,需自行透過覆寫來實作
public enum Operator {
  //------> 利用匿名類別來實做operate(int x) <------   //加入()的撰寫   PLUSONE(){ int operate(int x){ return x;} },   //可省略()的撰寫   ABS{ public int operate(int x){return x;} };   //抽象方法   abstract int operate(int x); }

列舉可實做介面,但未開放使用繼承
public enum Orderenum implements OrderInterface{}
##ShowAll##

JAVA筆記-列舉當一般類別,可加入方法和屬性

列舉也是類別,當作外部類別時可加入屬性和方法,
但列舉的值必須先宣告,且列舉設定完內容要加分號
且編譯器不會自動加上static final修飾字
##ReadMore##
public enum OrderEnum {
  STOCKNO(2330),
  STOCKPRICE(45.5),
  STOCKQTY(10), //有參數,由OrderEnum(double d)建構子實作
  IDENTIFY(); //無參數,由OrderEnum()建構子實作

  private OrderEnum() { //列舉建構子一定是private
    System.out.println("A");
  }

  OrderEnum(double d) { //列舉建構子會編譯成private
    System.out.println("B");
  }

  public int id; //屬性

  public boolean submit(){ //方法
    return true;
  }
}

JAVA筆記-enum列舉,switch應用

//會自動轉成Week.Monday.ordinal(),用int比對,數值由0遞升
switch(Week.Monday){
  case Monday:
    System.out.println(Week.Monday);
    break;
}
##ShowAll##

JAVA筆記-enum列舉,宣告與輸出

宣告範例:
public enum Week {Sun, Mon, Tue, Wed, Thu, Fri, Sat}

編譯器會將列舉自動加上public、static、final的修飾,
即不被繼承、定義後資料無法更改

輸出值範例:
//輸出單一字串
System.out.print(Week.Sunday);

//輸出列舉內全部字串
Week[] week = Week.values(); //將列舉轉成陣列使用
for(int i=0; i<week.length; i++) //取得列舉長度
  System.out.print(week[i] + ", ");


覆寫toString(),因值而異的類實作
enum Grade {
  A{public String toString(){return "a"}}, B, C, D
}
System.out.print(Week.A); //結果輸出的是a

2009年8月7日 星期五

C/C++筆記-enum列舉

//預設起始值從0開始,也可指定值
enum people {female,male=2} mary;

mary = female;
if(mary == male)
  printf("mary is a woman");
##ShowAll##
/