java enum类型_Java-枚举类型

枚举介绍

Java中的枚举是JDK5.0以后添加的新特性,枚举是用来定义一组数量确定的常量的类。

枚举类是一个特殊的类,它和普通类一样可以有构造方法,也可以有属性和普通方法。可以实现接口。

枚举的定义

public enum Color{

RED,BLACK,BLUE;

}

这就定义了一个枚举类,其中的RED,BLACK,BLUE是这个枚举类的实例,每个实例需要用‘,’隔开,最后一个使用‘;’表示结束。说它们是实例那为什么没有用new呢?

那是因为在JDK5.0以前想要使用枚举需要自己定义。

public class Color{

public static final int RED = 1;

public static final int BLUE = 2;

public static final int BLACK = 3;

}

在JDK5.0以后,为了能够更加方便的使用枚举,就出现了enum关键字。定义了枚举类之后,就把之前全部重复的代码给省去了。比如public static final int

所以才有了上面这样简单的定义。

枚举的使用

在定义了枚举类之后,直接使用类名加属性就可以调用。因为所有都是static的。

public class EnumTest {

public static void main(String[] args) {

Color black = Color.BLACK;

}

}

在switch中使用

public class EnumTest {

public static void main(String[] args) {

Color red = Color.RED;

switch (red){

case RED:

System.out.println("红色");

break;

case BLUE:

System.out.println("蓝色");

break;

case BLACK:

System.out.println("黑色");

break;

}

}

}

在switch中使用时,不需要加类名,直接使用对象就行了。

枚举类的原理

枚举类实际上是继承了Enum类。

Enum中常用的方法:

返回类型

方法名

说明

String

toStirng()

返回枚举类的名称

枚举类型[]

values()

返回返回所有枚举常量

枚举类型

valuesOf(String name)

根据名称返回枚举常量

枚举类实现接口

枚举类实现了接口之后,需要实现对应的抽象方法,有两种实现方式,会有不一样的结果。

第一种:在枚举类中实现

public class EnumTest {

public static void main(String[] args) {

Color.RED.show();

Color.BLUE.show();

Color.BLACK.show();

}

}

interface Show{

void show();

}

enum Color implements Show {

RED,

BLUE,

BLACK;

@Override

public void show() {

System.out.println("枚举了红色");

}

}

/*

运行结果:

枚举了红色

枚举了红色

枚举了红色

*/

如果我想要每个颜色打印不一样的数据,这种实现方式就不行了,需要第二种实现方式。

在每个常量后面实现方法:

enum Color implements Show {

RED{

@Override

public void show() {

System.out.println("枚举了红色");

}

},

BLUE{

@Override

public void show() {

System.out.println("枚举了蓝色");

}

},

BLACK{

@Override

public void show() {

System.out.println("枚举了黑色");

}

};

}

/*

运行结果:

枚举了红色

枚举了蓝色

枚举了黑色

*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值