枚举

1.接口类

package 继承接口独立实现方法;
public interface IEnum {
       public abstract String getTpye();
      
       public abstract String getId();
}

2.枚举类

package 继承接口独立实现方法;
/**
 * <p> Title: MethodEnum </p>
 * <p> Description: </p>
 * <p> Company: 北京华宇信息技术有限公司 </p>
 * @author mengly
 * @date 2017 - 8 - 1 下午2:23:02
 */
public enum MethodEnum implements IEnum{
      
       /**
       * 枚举定义:一个类的对象有限且固定,例如是否、四季和行星,这些在java中成为枚举
       *
       * 早起使用这些代表枚举
       * public static final int SEASON_SPRING = 1;
       * public static final int SEASON_SUMMER = 2;
       * public static final int SEASON_FALL = 3;
       * public static final int SEASON_WINTER = 4;
       *
       * 缺点:
       * 1、类型不安全,可以相加
       * 2、如果没有命名空间,容易混淆
       * 3、含义混乱,SEASON_SPRING = 1,实际这个没什么关联
       *
       * java 5以后引入枚举类型,新增enum关键字与class interface地位相当
       *  枚举特性:
       *  1、枚举默认继承了java.lang.Enum 而不是Object,所以不能显示继承,其中java.lang.Enum继承了
       *  java.lang.Serializable和java.lang.Comparbale
       *  2、构造器私有化,可以使用默认类型,默认就是private,显示声明的也只能是private
       *  3、枚举的所有实例必须在第一列,否则无法生成实例,实例类型为public static final
       *  4、枚举类编译后就是个.class的文件
       *
       *  相当于,
       *    public static fianl MethodEnum MAN = new MethodEnum("1");
       *    public static fianl MethodEnum WOMAN = new MethodEnum("2");
       *    并不是所有枚举都是final的,如果继承了抽象方法,就变成了抽象枚举,非final类型
       */
      
       //创建了MethodEnum的匿名子类
       //该例子编译后会产生MethodEnum.class、MethodEnum$1.class和MethodEnum$2.class
       //并且为抽象枚举类
       MAN ( "1" ){
             //实现继承的抽象方法
             @Override
             public String getTpye() {
                  return "123" ;
            }
            
             //实现枚举自己的抽象方法
             @Override
             public String getMs() {
                  return "男人" ;
            }
      },
       WOMAN ( "2" ){
             @Override
             public String getTpye() {
                  return "456" ;
            }
             @Override
             public String getMs() {
                  return "女人" ;
            }
      };
      
       //枚举的常量建议为 private final类型
       private final String id ;
       //由于上面的MAN和WOMAN对象,设置有默认值,所以需要显示特殊的private的带有参数的构造方法
       private MethodEnum(String id){
             this . id = id;
      }
      
      
       @Override
       public String getId() {
             return id ;
      }
      
       //枚举自带抽象方法,枚举必须实现
       public abstract String getMs();
      
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值