关于枚举类一直有点不是很清楚,查了下资料,总结了一下。
首先枚举的类修饰符,枚举类的修饰符只有一个public,还有一个修饰符是默认的final(只是默认,不可以显式表示,如果显式表示会有这么一个错:
Illegal modifier for the enum Operation; only public is permitted,也就是说枚举类的修饰符只能是public),也就是不能被其他类继承,
其构造函数的修饰符只能用private修饰(如果不加,默认还是private),也就是说不能被其他类创建对象。
枚举类可以有抽象方法,有了抽象方法,那么这个枚举类也就是抽象的了,你默认的final修饰符改为abstract(但还是不能加显式加到类前面去修饰,只是默认),既然是抽象类,那么就不能创建实例,只能通过其实现类来创建实例,在这就用匿名内部类来表示,PLUS = new Operation (){},在枚举类表示为PLUS(){},然后重写抽象方法;
- public enum Operation {
- PLUS (){
- @Override
- public void numble(int x,int y) {
- // TODO Auto-generated method stub
- System.out.println(x+y);
- }
-
- },
- SUB(){
- @Override
- public void numble(int x,int y) {
- // TODO Auto-generated method stub
- System.out.println(x-y);
- }
-
- };
-
- public abstract void numble(int x,int y);
-
- public static void main(String[] args) {
- Operation.PLUS.numble(3, 6);
- Operation.SUB.numble(3, 6);
- }
- }
复制代码 都是自己总结的,如果有什么错误,欢迎批评指正
|
|