黑马程序员技术交流社区

标题: 没枚举类 [打印本页]

作者: 杨庆雷    时间: 2014-8-13 13:51
标题: 没枚举类

关于枚举类一直有点不是很清楚,查了下资料,总结了一下。
首先枚举的类修饰符,枚举类的修饰符只有一个public,还有一个修饰符是默认的final(只是默认,不可以显式表示,如果显式表示会有这么一个错:
Illegal modifier for the enum Operation; only public is permitted,也就是说枚举类的修饰符只能是public),也就是不能被其他类继承,
其构造函数的修饰符只能用private修饰(如果不加,默认还是private),也就是说不能被其他类创建对象。

枚举类可以有抽象方法,有了抽象方法,那么这个枚举类也就是抽象的了,你默认的final修饰符改为abstract(但还是不能加显式加到类前面去修饰,只是默认),既然是抽象类,那么就不能创建实例,只能通过其实现类来创建实例,在这就用匿名内部类来表示,PLUS = new Operation (){},在枚举类表示为PLUS(){},然后重写抽象方法;

  1. public enum Operation {
  2.         PLUS (){

  3.                 @Override
  4.                 public void numble(int x,int y) {
  5.                         // TODO Auto-generated method stub
  6.                         System.out.println(x+y);
  7.                 }
  8.                
  9.         },
  10.         SUB(){

  11.                 @Override
  12.                 public void numble(int x,int y) {
  13.                         // TODO Auto-generated method stub
  14.                         System.out.println(x-y);
  15.                 }
  16.                
  17.         };
  18.        
  19.         public abstract void numble(int x,int y);
  20.        
  21.         public static void main(String[] args) {
  22.                 Operation.PLUS.numble(3, 6);
  23.                 Operation.SUB.numble(3, 6);
  24.         }
  25. }
复制代码
都是自己总结的,如果有什么错误,欢迎批评指正



作者: 贾浩田    时间: 2014-8-13 14:09
还没有学到,请问枚举类的视频是在高新技术部分吗?
作者: 杨庆雷    时间: 2014-8-13 14:29
贾浩田 发表于 2014-8-13 14:09
还没有学到,请问枚举类的视频是在高新技术部分吗?

恩                     




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2