Java基础之枚举

目录

1.关键字:enum

2. 什么是枚举?

2.1 枚举的定义格式

2.2 枚举使用的格式

2.3 枚举本质上就是一个Java类

2.4 如何使用枚举类型

2.4.1 枚举一般配合switch一起使用

2.4.2 当一个方法的参数是一个枚举类型时

2.5 枚举可以有属性和方法

2.6 枚举中可以有构造方法

1.关键字:enum

       enum也是关键字。所以enum的级别与class是一致。

       例如:public enum e1(){ }

2. 什么是枚举?

       枚举也是一种特殊的数据类型。

       枚举也是一种特殊的类。就是一个有固定实例数量的类。

       例如:计算机三原色RGB。交通信号灯颜色。季节。月份。

2.1 枚举的定义格式

public enum RGB {
    RED,GREEN,BLUE;
}

       定义一个枚举类型:RGB。在这个类型中,有三个实例:RED,GREEN,BLUE; 

2.2 枚举使用的格式

       枚举中每一个值,都是枚举的一个实例。

public static void main(String[] args) {
     RGB rgb1 = RGB.RED;
     RGB rgb2 = RGB.BLUE;
     RGB rgb3 = RGB.GREEN;
 }

2.3 枚举本质上就是一个Java类

       枚举在JDK5才加入,在JDK5之前,我们都是使用Java类的方式实现枚举的要求。JDK5

前,一个类只有三个实例的标准写法。

public class RGBClass {
     public final static RGBClass R = new RGBClass();
     public final static RGBClass G = new RGBClass();
     public final static RGBClass B = new RGBClass();
     private RGBClass () {
    }
}

        在这个代码的基础上。我们把固定的代码删掉,会得到什么枚举类型。 

 ​public class RGBClass {
    R;
    G;
    B;
}​​​​​​

2.4 如何使用枚举类型

2.4.1 枚举一般配合switch一起使用

RGB rgb ;
switch (rgb1){
    case RED:
        System.out.println("red");
        break;
    case BLUE:
        System.out.println("blue");
        break;
    case GREEN:
        System.out.println("green");
        break;
}

2.4.2 当一个方法的参数是一个枚举类型时

       例如:一个公司只有7个部门。用什么类型来表示这7个部门。

       ① 使用编号:int:分别表示1-7

       编写方法时的参数就是int: public void print(int i){}

       int数据类型合法的取值范围要比1-7大。

       业务规范要求1-7的取值。但是语法要求合法的int类型太多了。

       ② 使用枚举。使用一个有7个实例的枚举。

       编写方法时,参数是枚举类型。 public void print(WEEK week){}

       当WEEK做为参数时,合法的取值有7个。WEEK.monday;等等。

2.5 枚举可以有属性和方法

       枚举就是一个Java类。

public enum RGB {
    RED,GREEN,BLUE;
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
public enum Test {
    public static void main(String[] args){
        RGB.RED.setName(“红色”);
        System.out.println(RGB.RED);        
     }
}

2.6 枚举中可以有构造方法

public class RGBClass {
    private String name;
 //   public final static RGBClass R = new RGBClass("红");
 //   public final static RGBClass G = new RGBClass("绿");
 //   public final static RGBClass B = new RGBClass("蓝");
    R ("红");
    G ("绿");
    B ("蓝");
    public RGBClass(String name) {
        this.name = name;
    }

       按格式转换:枚举应该如下:

public enum RGB {
    RED("红"),
    GREEN("绿"),
    BLUE("蓝");
    private String name;
    RGB(String name) {
        this.name = name;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值