java枚举

枚举是什么?
枚举就是一个特殊的java类,它继承了java.lang.Enum这个类。
枚举的作用
我们在开发中,有些数据必须被限定在某个范围,不可以超出这个范围,此时就需要使用枚举。它能够使我们代码简单,安全。

package cn.itcast.enumdemo;
public class Demo2 {
    //使用枚举提供阅读性,提高安全类
    public static void main(String[] args)
    {
        Employee1 e1=new Employee1("Jack", 100000,Role.BOSS);
        System.out.println(e1);
    }
}
//声明一个员工类
class Employee1
{
    private String name;
    private double salary;
    //员工有角色,BOSS,MANAGE,WORKER
    private Role role;
    public Employee1(String name, double salary, Role role) {
        super();
        this.name = name;
        this.salary = salary;
        this.role = role;
    }
    @Override
    public String toString() {
        return "Employee1 [name=" + name + ", salary=" + salary + ", role="
                + role + "]";
    }
}
enum Role
{
    BOSS,MANAGER,WORKER
}
//class Role
//{
//  public static final Role BOSS=new Role();
//  public static final Role MANAGER=new Role();
//  public static final Role WORKER=new Role();
//}

枚举类的特性
1、枚举类也是一种特殊形式的Java类
2、枚举类中声明的每一个枚举值代表枚举类的一个实例对象
3、余java中普通类一样,在声明枚举类时,也可以声明属性。方法和构造函数,但是枚举的构造函数必须为私有的private
构造函数,属性,方法
4、若枚举类中只有有个枚举值,则可以当做单态设计模式使用

package cn.itcast.enumdemo;

public class Demo5 {
    public static void main(String[] args) {

    }

}
enum EnumDemo
{
    //1、枚举值
    //如果枚举中只有枚举值,最后一个枚举值后面可以不写;结束符。
    //如果还有其他成员,必须在最后一个枚举值加上;。
    A,B,C;
    //上面每一个枚举值,代表的是EnumDemo类的一个对象
    //对于枚举值,我们可以直接用枚举名.枚举值。因为它本质上是一个static修饰的。
    //2、构造方法,默认是private,并且必须为private,可以重载。
//  private EnumDemo()
//  {
//      
//  }
    EnumDemo()
    {

    }
    //3、声明属性(静态,非静态)
    private int id;
    private static String name;
    //4、声明方法(静态,非静态)
    public void show()
    {

    }
    public static void show1()
    {

    }
}

1、枚举默认就是abstract的,不可以实例化。因为枚举中可以声明abstract方法。(可以声明抽象方法的类必须是抽象类)
2、枚举中可以拥有abstract抽象方法。
3、枚举的所有成员,默认都是public static final类型的。且必须要第一行开始声明,必须在,(逗号)分开
4、所有的枚举,默认都是java.lang.Enum。
5、Enum类不但是所有枚举的公共的基类,还是一个工具类。
当枚举类中有抽象方法时,枚举值后应该实现这些方法

enum EnumDemo
{
    A{
        @Override
        public void show2() {
            // TODO Auto-generated method stub

        }
    },
    B{
    @Override
    public void show2() {
        // TODO Auto-generated method stub

    }   
    },
    C{
        @Override
        public void show2() {
            // TODO Auto-generated method stub

        }
    };
    public abstract void show2();
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值