java枚举类
使用enum声明,默认直接继承了java.lang.Enum类,而不是Object类;
枚举类的对象是固定的,实例个数有限,不可以再new( ),枚举对象后可以跟()。
枚举元素必须位于枚举类体中的最开始部分,枚举元素后要有分号与其他成员分隔。
枚举类的构造方法的权限修饰符默认是private;
一旦枚举对象后面加上{},那么该对象实际是枚举匿名内部类对象;
所有枚举类都提供一个静态的values()方法(返回该枚举类所有对象组成的数组),便于遍历所有枚举对象;
所有枚举类都提供一个静态的valueOf(String name)方法, 返回枚举类中对象名等于 name的对象。
Eg:public enum Color{
RED(), GREEN(){}, BLUE{};
}
package reviewDemo;
//枚举
enum Color{
Green,Blue,Yellow;
@Override
public String toString() {
String ret = super.toString();
switch (this) {
case Green:
ret = "绿色";
break;
case Blue:
ret = "蓝色";
break;
case Yellow:
ret = "黄色";
break;
default:
break;
}
return ret;
}
}
class Personp{
Color c = Color.Blue;
void show(){
System.out.println(c);
}
}
public class Demo18 {
public static void main(String[] args) {
Color []color = Color.values();
for (Color c : color) {
System.out.println(c);
}
new Personp().show();
}
}
输出:
绿色
蓝色
黄色
蓝色
枚举类覆写接口抽象方法的两种方式:
在枚举类中实现接口的抽象方法;
在枚举匿名内部类中实现接口的抽象方法;
interface I{
void show();
}
enum Color implements I{
RED(){
public void show(){
}
}, GREEN{
public void show(){
}
}, BLUE{
public void show(){
}
};
}
enum Color implements I{
RED(), GREEN, BLUE;
public void show() {
}
}
我的总结:
枚举不可以new();即便是反射也不可以!
备注:一个类如果没有构造方法,那么一定有相对应的某个方法可以获取对象!
相关文章
- Java Volatile keyword
- Java String字符串相关
- 2022 最新 Java 基础 面试题(二)
- 深入理解Java中的IO
- Java Date Time 教程-java.sql.Timestamp
- 2022 Java 企业面试题汇总
- Java详解,java后端应届生面试题
- 阿里巴巴 2022 最新 Java 架构师进阶宝典!助力程序员金九银十面试跳槽涨薪
- Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
- 【Java】java的内存浅析
- Java开发环境的搭建以及使用eclipse从头一步步创建java项目
- 【Java】【异常排查】java.lang.NoClassDefFoundError 完美解决
- 第七节:详细讲解Java中的日期,java.util.date
- Java重写(Override)&重载(Overload)
- 怎么在云服务上启动java服务?(图文解说详细版)
- 《深入解析Android 虚拟机》——第2章,第2.2节Java虚拟机概述
- Java的一个关于“星球”的枚举
- java enum(枚举)使用详解 + 总结
- JAVA ANDROID SOCKET通信检测(SERVER)连接是否断开
- java整理软件--- Java OCR 图像智能字符识别技术,可识别中文,但是验证码不可以识别...已测识别中文效果很好
- java冒泡排序代码详解
- Java 8 ThreadLocal 源码解析
- 【深入JAVA】java注解
- 【JAVA】浅谈java枚举类
- Java hutool/java 常用方法
- java mybaits 调用存储过程
- Java面向对象特征之三 多态