A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨庆雷 中级黑马   /  2014-8-13 13:51  /  940 人查看  /  2 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文


关于枚举类一直有点不是很清楚,查了下资料,总结了一下。
首先枚举的类修饰符,枚举类的修饰符只有一个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. }
复制代码
都是自己总结的,如果有什么错误,欢迎批评指正


2 个回复

倒序浏览
还没有学到,请问枚举类的视频是在高新技术部分吗?
回复 使用道具 举报
贾浩田 发表于 2014-8-13 14:09
还没有学到,请问枚举类的视频是在高新技术部分吗?

恩                     
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马