Java枚举类需要注意的要点
2021/4/17 20:25:40
本文主要是介绍Java枚举类需要注意的要点,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.为什么枚举类中的构造函数自动默认为private,并且不能改变?枚举中的构造函数是怎么运行的?
public class RegExpTest { public static void main(String[] args) { Color c1=Color.BLUE; //要注意的是当创建了Color类对象的时候,这个枚举类中的所有实例都会调用构造函数,因此也就会有三个输出出现 // System.out.println(c1); // c1.colorInfo(); } } enum Color { RED, GREEN, BLUE; //它们本身就是枚举类Color的实例 // 构造函数 private Color() //之所以枚举类的构造函数是被private关键字修饰,是因为调用构造函数的对象是在Color之中,也就是RED, GREEN, BLUE { System.out.println("Constructor called for : " + this.toString()); } public void colorInfo() { System.out.println("Universal Color"); } }
运行结果是:
Constructor called for : RED Constructor called for : GREEN Constructor called for : BLUE
2.为什么枚举类型不能使用new来创建实例?
public enum Direction { FRONT, BEHIND, LEFT, RIGHT("红色"); } Direction d = Direction.FRONT;
不能使用new来创建枚举类的对象,因为枚举类中的实例就是类中的枚举项,所以在类外只能使用类名.枚举项。
3.枚举类在switch()中的用法:
在switch中,不能使用枚举类名称,例如:“case Direction.FRONT:”这是错误的,编译器会根据switch中d的类型来判定每个枚举类型,在case中必须直接给出与d相同类型的枚举选项,而不能再有类型。
Direction d = Direction.FRONT; switch(d) { case FRONT: System.out.println("前面");break; case BEHIND:System.out.println("后面");break; case LEFT: System.out.println("左面");break; case RIGHT: System.out.println("右面");break; default:System.out.println("错误的方向"); } Direction d1 = d; System.out.println(d1);
这篇关于Java枚举类需要注意的要点的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25Java创意资料:新手入门的创意学习指南
- 2024-11-25JAVA对接阿里云智能语音服务资料详解:新手入门指南
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25JAVA副业资料:新手入门及初级提升指南
- 2024-11-25Java副业资料:入门到实践的全面指南
- 2024-11-25Springboot应用的多环境打包项目实战
- 2024-11-25SpringBoot应用的生产发布项目实战入门教程
- 2024-11-25Viite多环境配置项目实战:新手入门教程
- 2024-11-25Vite多环境配置项目实战入门教程