java7枚举用法

本文介绍了Java枚举类型的七种实用方法,包括常量分组、增强switch语句、添加自定义方法、覆盖默认方法、实现接口、使用接口组织枚举以及枚举集合的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。用法一:常量在JDK1.5 之前,我们定义常量都是: publicstaticfianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

Java代码

  • public   enum  Color {  
  •   RED, GREEN, BLANK, YELLOW  
  • }  
用法二:switchJDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。

Java代码

  • enum  Signal {  
  •     GREEN, YELLOW, RED  
  • }  
  • public   class  TrafficLight {  
  •     Signal color = Signal.RED;  
  •     public   void  change() {  
  •         switch  (color) {  
  •         case  RED:  
  •             color = Signal.GREEN;  
  •             break ;  
  •         case  YELLOW:  
  •             color = Signal.RED;  
  •             break ;  
  •         case  GREEN:  
  •             color = Signal.YELLOW;  
  •             break ;  
  •         }  
  •     }  
  • }  
用法三:向枚举中添加新方法如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。

Java代码

  • public   enum  Color {  
  •     RED("红色"  1 ), GREEN( "绿色"  2 ), BLANK( "白色"  3 ), YELLO( "黄色"  4 );  
  •     // 成员变量 
  •     private  String name;  
  •     private   int  index;  
  •     // 构造方法 
  •     private  Color(String name,  int  index) {  
  •         this .name = name;  
  •         this .index = index;  
  •     }  
  •     // 普通方法 
  •     public   static  String getName( int  index) {  
  •         for  (Color c : Color.values()) {  
  •             if  (c.getIndex() == index) {  
  •                 return  c.name;  
  •             }  
  •         }  
  •         return   null ;  
  •     }  
  •     // get set 方法 
  •     public  String getName() {  
  •         return  name;  
  •     }  
  •     public   void  setName(String name) {  
  •         this .name = name;  
  •     }  
  •     public   int  getIndex() {  
  •         return  index;  
  •     }  
  •     public   void  setIndex( int  index) {  
  •         this .index = index;  
  •     }  
  • }  
用法四:覆盖枚举的方法下面给出一个toString()方法覆盖的例子。

Java代码

  • public   enum  Color {  
  •     RED("红色"  1 ), GREEN( "绿色"  2 ), BLANK( "白色"  3 ), YELLO( "黄色"  4 );  
  •     // 成员变量 
  •     private  String name;  
  •     private   int  index;  
  •     // 构造方法 
  •     private  Color(String name,  int  index) {  
  •         this .name = name;  
  •         this .index = index;  
  •     }  
  •     //覆盖方法 
  •     @Override 
  •     public  String toString() {  
  •         return   this .index+ "_" + this .name;  
  •     }  
  • }  
用法五:实现接口所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。

Java代码

  • public   interface  Behaviour {  
  •     void  print();  
  •     String getInfo();  
  • }  
  • public   enum  Color  implements  Behaviour{  
  •     RED("红色"  1 ), GREEN( "绿色"  2 ), BLANK( "白色"  3 ), YELLO( "黄色"  4 );  
  •     // 成员变量 
  •     private  String name;  
  •     private   int  index;  
  •     // 构造方法 
  •     private  Color(String name,  int  index) {  
  •         this .name = name;  
  •         this .index = index;  
  •     }  
  • //接口方法 
  •     @Override 
  •     public  String getInfo() {  
  •         return   this .name;  
  •     }  
  •     //接口方法 
  •     @Override 
  •     public   void  print() {  
  •         System.out.println(this .index+ ":" + this .name);  
  •     }  
  • }  
用法六:使用接口组织枚举

Java代码

  • public   interface  Food {  
  •     enum  Coffee  implements  Food{  
  •         BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO  
  •     }  
  •     enum  Dessert  implements  Food{  
  •         FRUIT, CAKE, GELATO  
  •     }  
  • }  
用法七:关于枚举集合的使用java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的 key是enum类型,而value则可以是任意类型。关于这个两个集合的使用就不在这里赘述,可以参考JDK文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值