Java培训进阶之枚举的特别说明

Java1、枚举中定义属性

  • 枚举类对象的属性不应允许被改动, 所以应该使用 private final修饰。不是语法要求,而是语义要求
  • 枚举类的使用 private final 修饰的属性应该在构造器中为其赋值。
  • 若枚举类显式的定义了带参数的构造器, 则在列出枚举值时也必须对应的传入参数。

package com.enumtype.before15;

 

public class TestWeekField {

 

    public static void main(String[] args) {

         Week w = Week.MONDAY;

         System.out.println(w);

    }

}

enum Week{

    MONDAY(“星期一”),

    TUESDAY(“星期二”),

    WEDNESDAY(“星期三”),

    THURSDAY(“星期四”),

    FRIDAY(“星期五”),

    SATURDAY(“星期六”),

    SUNDAY(“星期日”);

    private final String DESCRPTION;

 

    private Week(String dESCRPTION) {

         DESCRPTION = dESCRPTION;

    }

    public String toString(){

         return DESCRPTION;

    }

}

2、枚举类可以自定义方法,静态和非静态

3、枚举类可以实现一个或者多个接口(了解)

若每个枚举值在调用实现的接口方法呈现相同的行为方式,则只要统一实现该方法即可。

若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式, 则可以让每个枚举值分别来实现该方法

interface Change{

    void degenerate();

}

interface Checkable{

    void check();

}

enum Gender implements Change,Checkable{

    MAN{

         public void degenerate(){

             System.out.println(“咔嚓一刀”);

         }

    },WOMAN{

         public void degenerate(){

             System.out.println(“比较复杂”);

         }

    };

    public void check(){

         System.out.println(“脱光”);

    }

}

4、枚举类可以自己定义抽象方法(了解)

enum Payment{

    CASH{

         public void pay(){

             System.out.println(“现金支付”);

         }

    },

    WECHAT{

         public void pay(){

             System.out.println(“微信支付”);

         }

    },

    ALIPAY{

         public void pay(){

             System.out.println(“支付鸨支付”);

         }

    },

    CARD{

         public void pay(){

             System.out.println(“银行卡支付”);

         }

    },

    CREDIT{

         public void pay(){

             System.out.println(“信用卡支付”);

         }

    };

    public abstract void pay();

}


上一篇:
下一篇:
关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园综合楼6层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)

武汉市东湖高新开发区中国光谷(武汉校区)