Enum 枚举的初步学习(1)

简介:
1.枚举类型的特点:
      1. 是一个类,本身提供了一些方法
     2.继承了Enum类,所以不能继承其他类
     3.主要作用,定义个新的数据类型(和Class 稍微有些区别)
    4.values()方法 比较特殊。
   5.实现了 Comparable<E>, Serializable 2个接口
2.应用场景:
    一般应用在需要一个新的数据类型,而且该数据内容相对固定,涉及到的业务逻辑不复杂的情况。
3.示例代码
  
package enumerated.randy; 
/** 
* @param args 
*/
 

public  class EnumTest { 
   // 定义一个enum 
     enum Color{ 
        
      // 定义枚举内容 
      RED( "红色"),GREEN( "绿帽子"),YELLOW( "黄色文化");        
     //定义另外一个属性 
       private String desp; 
        
       // 注意该构造方法是私有的 
       private Color(String desp){ 
         this.desp = desp;         
      } 
       // 定义另外一个方法 
       public String getDesp(){ 
         return  this.desp+ ":"+ this.name(); 
      } 
        

  } 
     
     //switch 中的 枚举类型 
   public  void change(){ 
     switch(favorate){ 
     case RED:    favorate = Color.GREEN; 
     break
     case GREEN : favorate = Color.YELLOW; 
     break
     case YELLOW :favorate = Color.RED; 
     break
    } 
     
  } 
    
   public Color favorate = Color.RED; 
   public  static  void main(String[] args) { 

    System.out.println( "----------------枚举一些常用的方法---------------"); 
     for(Color c :Color.values()){ 
      System.out.println(c.getClass()); 
      System.out.println(c.getDeclaringClass()); 
      System.out.println(c.name()); //RED 
      System.out.println(c.compareTo(Color.RED)); 
      System.out.println(c.ordinal()); 
      System.out.println(c.equals(Color.RED)); 
      System.out.println(c == Color.RED); 
    } 

System.out.println( "----------------测试枚举类型中定义的方法-----");     
     for(Color c :Color.values()){ 
      System.out.println(c.getDesp()); 
    } 

System.out.println( "-------------测试enum 的 switch 用法----------------------"); 
    EnumTest test =  new EnumTest(); 
    Color color = Color.RED; 
     for( int i=0;i<=7;i++){ 
      test.change(); 
      System.out.println(test.favorate.getDesp()); 
    } 
  } 


 
枚举一些常用的方法
class enumerated.randy.EnumTest$Color
class enumerated.randy.EnumTest$Color
RED
0
0
true
true
class enumerated.randy.EnumTest$Color
class enumerated.randy.EnumTest$Color
GREEN
1
1
false
false
class enumerated.randy.EnumTest$Color
class enumerated.randy.EnumTest$Color
YELLOW
2
2
false
false
测试枚举类型中定义的方法-----
红色:RED
绿帽子:GREEN
黄色文化:YELLOW
测试enum 的 switch 用法
绿帽子:GREEN
黄色文化:YELLOW
红色:RED
绿帽子:GREEN
黄色文化:YELLOW
红色:RED
绿帽子:GREEN
黄色文化:YELLOW
 
 
 
通过代码我们可以知道:
  枚举类型: 除了可以定义【数据内容】之外,还可以添加另外的属性“desp" 和其他方法“getDesp()”. 注意,在“数据内容”后面有“;”
2.可以有构造方法,但是构造方法不能是public的,不管是有参数的,还是无参数的
3.从Enum 类 继承了若干方法,方便Enum 数据的访问。
4.values() 是一个静态方法,但是在Enum中不存在,只有一个带参数的values(Class class)。也就是说,values方法是在JVM 编译的时候添加的。
5. 注意 在switch 的case语句中, 
  case RED:  favorate = Color.GREEN;
  break;
不能写成   case Color.RED:  favorate = Color.GREEN;
这一点有点蹊跷。 大概是switch(color)  已经确定了是Color 数据类型了。


本文转自 randy_shandong 51CTO博客,原文链接:http://blog.51cto.com/dba10g/293970,如需转载请自行联系原作者
相关文章
|
6天前
|
人工智能 运维 安全
|
4天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
522 14
|
11天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
891 109
|
5天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。