3. 對象的形式實現
何為對象的形式實現呢? 其實這個很簡單,也就是將需要枚舉的標識定義在對象裡,通過對象的特性將 其封裝.詳細如下代碼:
1public class SeasonOne
2{
3 public static readonly SeasonOne SPRING = new SeasonOne("春天");
4 public static readonly SeasonOne SUMMER = new SeasonOne("夏天");
5 public static readonly SeasonOne AUTUMN = new SeasonOne("秋天");
6 public static readonly SeasonOne WINTER = new SeasonOne("冬天");
7
8 public SeasonOne(string name)
9 {
10 this.name = name;
11 }
12
13 //成員
14 private string name;
15 public string Name
16 {
17 get { return name; }
18 set { name = value; }
19 }
20}
以上的形式實現很簡單, 不過好象已經偏離了"枚舉(enum)",因為實現已經由枚舉轉向為了類(class) 對象來實現了.定義一成員屬性,通過構造方法初始化,在類裡定義需要枚舉的只讀成員,通常不建議使用此 方式來實現. 我們可以這樣來測試:
1class Program
2{
3 static void Main(string[] args)
4 {
5 Console.WriteLine(SeasonOne.AUTUMN.Name);
6 //運行結果:秋天
7 }
8}
4. Java中的枚舉
在與C#語言一樣流行的JAVA中,枚舉還存在著另類故事,作為一個面向對象的開發者或是既將成為面向 對象的開發者的你,我想了解下另類語言的某些特性是有必要的.在Java中,枚舉除了上面所介紹的相關功 能外,還有其他的一些功能,下面將簡單的介紹下這些功能的應用.
枚舉裡定義抽象方法,標識符實現抽象方法
1enum Operator{
2 ADD {
3 public double calculate(double a,double b){
4 return a+b;
5 }
6 },
7 SUBSTRACT{
8 public double calculate(double a,double b){
9 return a-b;
10 }
11 },
12 MULTIPLY{
13 public double calculate(double a,double b){
14 return a*b;
15 }
16 },
17 DIVIDE{
18 public double calculate(double a,double b){
19 return a/b;
20 }
21 };
22 public abstract double calculate(double a,double b);
23}