Java之枚举类的使用
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:MyEclipse10,java
撰写时间:2019-08-06 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
package com.ldb.demo;
/**
- 枚举类 使用 enum 声明,默认直接继承了 java.lang.Enum 类,而不是 Object 类;
- 枚举类的对象是固定的,实例个数有限,不可以再new( ),枚举对象后可以跟()。
- 枚举元素必须位于枚举类体中的最开始部分,枚举元素后要有分号与其他成员分隔。
- 枚举类的构造方法的权限修饰符默认是private;
- 一旦枚举对象后面加上{},那么该对象实际是枚举匿名内部类对象;
- 所有枚举类都提供一个静态的values()方法(返回该枚举类所有对象组成的数组),便于遍历所 有枚举对象;
- 所有枚举类都提供一个静态的 valueOf(String name)方法, 返回枚举类中对象名等于 name 的 对象。
- @author LDB*/
//枚举
enum Color {
Green, Blue, Yellow;
@Override
public String toString() {
String ret = super.toString();
switch (this) {//switch语句
case Green:
ret = “绿色”;
break;
case Blue:
ret = “蓝色”;
break;
case Yellow:
ret = “黄色”;
break;
default:
break;
}
return ret;
}
}
class Personp {//创建一个Personp类
Color c = Color.Blue;
void show() {
System.out.println©;//输出
}
}
public class Enum {
public static void main(String[] args) {
Color11[] color = Color11.values();
for (Color11 c : color) {
System.out.println©;//输出
}
new Personp().show();
}
// 输出:// 绿色// 蓝色// 黄色// 蓝色
// 枚举类覆写接口抽象方法的两种方式:
// 在枚举类中实现接口的抽象方法;
// 在枚举匿名内部类中实现接口的抽象方法;
interface I {//创建接口
void show();
}
enum Color1 implements I {//实现类
RED() {
public void show() {
}
},
GREEN {
public void show() {
}
},
BLUE {
public void show() {
}
};
}
enum Color11 implements I {//实现类
RED(), GREEN, BLUE;
public void show() {
}}
// 我的总结:
// 枚举不可以 new();即便是反射也不可以!
// 备注:一个类如果没有构造方法,那么一定有相对应的某个方法可以获取对象!
}