Java Enum – Java 枚举示例讲解

Java -枚举使用 枚举常量更简单安全。枚举具有内置方法 ,代码更优雅缺点:3. 不可继承,无法扩展,【从构造的方法的私有性就能看出来】1、枚举 将常量组织起来统一进行管理,更简单安全。2、枚举本身就是一个类,其构造方法默认为私有的,且都是默认继承于 java.lang.Enum3、 枚举可以避免反射和序列化问题:枚举类非常安全!4、不可继承,无法扩展。5、枚举具有内置方法 ,代码更优雅。 阅读详情

ava 中的枚举(Enum)是一种特殊的数据类型,它包含一组预定义的常量。

在处理不需要更改的值时,通常会使用enum,比如一周中的天数、一年中的季节、颜色等等。

在本文中,我们将看到如何创建一个枚举enum以及如何将其值赋给其他变量。我们还将看到如何在switch语句中使用 enum 或循环遍历它的值。

如何在 Java 中创建枚举

要创建enum,我们使用enum关键字,类似于使用 class 关键字创建类的方式。

以下是一个例子:

enum Colors {
  RED,
  BLUE,
  YELLOW,
  GREEN
}

在上面的代码中,我们创建了一个名为 Colors 的枚举。您可能会注意到这个枚举的值都是大写的—这只是一个通用的约定。如果值是小写的,您将不会收到错误。

枚举中的每个值用逗号分隔。

接下来,我们将创建一个新变量,并将枚举的一个值赋给它。

enum Colors {
  RED,
  BLUE,
  YELLOW,
  GREEN
}

public class Main { 
  public static void main(String[] args) { 
  
    Colors red = Colors.RED; 
    
    System.out.println(red); 
    // RED
  } 
}

这类似于初始化任何其他变量。在上面的代码中,我们初始化了一个 Colors 变量,并将枚举的一个值赋给它:Colors red = Colors.RED;。

请注意,我们可以在Main类内部创建枚举,代码仍然可以工作。那就是:

public class Main { 
  enum Colors {
  RED,
  BLUE,
  YELLOW,
  GREEN
}
  public static void main(String[] args) { 
  
    Colors red = Colors.RED; 
    
    System.out.println(red); 
  } 
}

如果我们想获得任何值的索引号,我们就必须使用ordinal()方法。下面是一个例子:

enum Colors {
  RED,
  BLUE,
  YELLOW,
  GREEN
}

public class Main { 
  public static void main(String[] args) { 
  
    Colors red = Colors.RED; 
    
    System.out.println(red.ordinal()); 
    // 0
  } 
}

上面代码中的 red.ordinal()  返回0。

如何在 switch 语句中使用枚举

在本节中,我们将演示如何在switch语句中使用 enum。

下面是一个例子:

public class Main { 
      enum Colors {
      RED,
      BLUE,
      YELLOW,
      GREEN
  }
  public static void main(String[] args) { 
    
    Colors myColor = Colors.YELLOW;

    switch(myColor) {
      case RED:
        System.out.println("The color is red");
        break;
      case BLUE:
         System.out.println("The color is blue");
        break;
      case YELLOW:
        System.out.println("The color is yellow");
        break;
      case GREEN:
        System.out.println("The color is green");
        break;
    }
  } 
}

这是一个在 switch 语句中使用 enum 的非常基本的例子。我们将在控制台中打印“The color is yellow”,因为这是唯一符合switch语句条件的情况。

如何循环遍历枚举的值

enum在 Java 中有一个values()方法,它返回枚举值的数组。我们将使用 for-each 循环遍历并打印枚举的值。

我们可以这样做:

enum Colors {
  RED,
  BLUE,
  YELLOW,
  GREEN
}

public class Main { 
  public static void main(String[] args) { 
      
      for (Colors allColors : Colors.values()) {
      System.out.println(allColors);
      
      /* 
      RED
      BLUE
      YELLOW
      GREEN
      */
    }
    
  } 
}

结论

在本文中,我们了解了 Java 中的 enum 是什么,如何创建它,以及如何将它的值赋给其他变量。

我们还学习了如何在 switch语句中使用 enum 类型,以及如何循环遍历 enum 的值。

java枚举使用案例 1 多属性字段定义枚举类的使用案例。 阅读详情

相关推荐

基于 WebGoat 平台的 SQL 注入攻击

基于 WebGoat 平台的 SQL 注入攻击

Labulongdong的博客 3481

Java 枚举(enum) 的常见用法和开发规范

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

dichengyan0013的博客 3942

Blender入门教程-3D视图界面介绍

3D视图用于与3D场景交互,可用于各种目的,例如建模、动画、纹理绘制等。在关闭 启动画面 后,启动场景会显示在3D视口中(如果没有加载其他blend文件)。01 标题栏标题栏包含了基于当前 模式 的各种菜单和控制。

weixin_52345129的博客 2250

Jira 9.12.0 Docker部署实战:如何优化内存配置与数据持久化,避免生产环境踩坑

本文详细介绍了Jira 9.12.0在Docker生产环境中的部署实践,重点探讨了内存调优与数据持久化的关键策略。通过JVM内存配置的深度优化和可靠的数据管理方案,帮助用户构建高性能且易于维护的Jira实例,避免生产环境中的常见问题。

chenqiaodezhi57164的博客 399

Java枚举(enum)--使用/教程/实例

原文网址: 简介 说明 本文用示例介绍Java中的枚举enum)的用法。 使用场景 定义常量、状态机等。 枚举与常量类 常量类 以往设置常量,通常将常量放置在接口中,这样在程序中就可以直接使用了,并且该常量不能被修改,因为在接口中定义的常量时,该常量的修饰符为final与static。如: public interface IConstants{ public static final int RED = 1; public static final...

IT利刃出鞘的博客 2万+

java枚举的基本用法

/ 定义一个枚举类型表示星期几// 使用枚举// 根据枚举值执行不同的操作");break;");break;default:定义枚举枚举类型通过enum关键字定义,代表一组常量。枚举字段:枚举可以包含字段、构造函数和方法,可以用来为每个枚举常量定义额外的属性。values():返回所有枚举常量的数组。:通过字符串获取枚举常量。ordinal():返回枚举常量的顺序(从0开始)。枚举类使代码更加简洁且类型安全,能够替代常规的int或String。

2302_78571314的博客 3366

java enum方法_Java Enum compareTo()方法与示例

java enum方法 枚举类compareTo()方法 (Enum Class compareTo() method) compareTo() method is available in java.lang package. compareTo()方法在java.lang包中可用。 compareTo() method is used to check equality or inequa...

cumtb2009的博客 3021

枚举类(enum)的定义、使用与注意事项,一文全搞懂!

枚举类型(enum)本质上也是一种类,只不过是这个类的对象是有限的、固定的几个,不能让用户随意创建。在JDK5.0 之后,Java支持enum关键字来快速定义枚举类型。开发中,当需要定义一组常量时,强烈建议使用枚举类。enum中常用方法有:String toString()、static 枚举类型[] values()、static 枚举类型 valueOf(String name)等等。若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式,则可以让每个枚举值分别来实现该方法。

共同学习,共同成长 2562

enum valueof_Java Enum valueOf()方法与示例

enum valueof 枚举类valueOf()方法 (Enum Class valueOf() method) valueOf() method is available in java.lang package. valueOf()方法在java.lang包中可用。 valueOf() method is used to retrieve the enum constants of the ...

cumubi7552的博客 2613

java json返回枚举_java使用GSON将JSON反序列化为Enum

我的目标是将JSON文件或其中的一部分解析为Java中的Enum类.我可以轻松地做到这一点,但出于调试原因,我想包括一个默认值.public enum MyEnum {@SerializedName("texts")TEXTS,@SerializedName("buttons")BUTTONS,@SerializedName("inputs")INPUTS,DEFAULT}所以,如果我尝试解析这个...

weixin_29959121的博客 766

java enum 返回list_java 根据输入枚举值返回一个转换对象

我正在尝试创建一个采用Enum值的方法,并返回一个基于该Enum值转换为类的对象.例如,我有一个名为ComponentType的枚举:public enum ComponentType{HEALTH(HealthComponent.class),HUNGER(HungerComponent.class);private Class extends Component> componentCl...

weixin_26882891的博客 957

java enum 返回list_java组合枚举使用getter返回指定的枚举

这是您正在寻找的另一个示范.此解决方案与以前的解决方案之间的区别在于,此解决方案更通用且可重复使用.事实上这超出了原来的问题,显示了这种方法的一些其他好处.所以你可能只是评论你不需要的位.我还附上一个单元测试来证明行为.所以基本上只需要在其中一个枚举中查找名称Apple或APPLE:FruitVeg fvg = getEnum(“APPLE”,Fruits.class,Vegetables.cla...

weixin_39963465的博客 750

java enum.parse,java 使用Mockito模拟枚举

我需要模拟以下枚举:public enum PersonStatus{WORKING,HOLIDAY,SICK}这是因为它在我正在测试的以下类中使用:被测班:public interface PersonRepository extends CrudRepository{List findByStatus(PersonStatus personStatus);}这是我目前的测试尝试:目前的测试:p...

weixin_33859931的博客 1534

enum java 不能用_javaEnum类型不是通用的;它不能用参数参数化

The type Enum is not generic; it cannot be parameterized with arguments 我在以下代码中出现此错误..package ayanoo.utility;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import ...

weixin_42407606的博客 1174

java byte 枚举_java 为什么在枚举类中禁止默认序列化

参见英文答案 > Is custom enum Serializable too?3个我一直在搜索web以查找与java中的枚举类相关的一些查询的答案.我的查询是为什么在枚举类中阻止了默认的反序列化.我可以看到enum类实现了Serializable接口,但它也有2个方法如下 –private void readObje...

weixin_39901332的博客 629

enum switch java_Java 实例enum 和 switch 语句使用

Java 实例 - enum 和 switch 语句使用Java 创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类对enum进行遍历和switch的操作示例代码:/*author by w3cschool.cnMain.java*/enum Car {lamborghini,tata,audi,fiat,honda}public class Ma...

weixin_30249151的博客 116

java枚举方法中调方法_java 值方法如何在枚举中工作

Enum中value()方法如何工作?values()方法背后的逻辑是什么?在我的项目中,我们将所有枚举数据缓存在Map中,如下所示:public enum Actions {CREATE("create"),UPDATE("update"),DELETE("delete"),ACTIVE("active"),INACTIVE("inactive"),MANAGE_ORDER("manage")...

weixin_39614109的博客 143

Java-Runoob-高级教程-实例-方法:11. Java 实例enum 和 switch 语句使用

ylbtech-Java-Runoob-高级教程-实例-方法:11. Java 实例enum 和 switch 语句使用 1.返回顶部 1、 Java 实例 - enum 和 switch 语句使用 Java 实例 Java 创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的...

weixin_30668887的博客 242

java 枚举 调用_java如何在枚举中调用其他方法?

enum Enum1{BIG(8), HUGE(10){public String getName(){return "Huge";}public String getContry(){return "India";}//additional Method},OVERWHELMING(16){public String getName(){return "OVERWHELMING";}};priv...

weixin_39627455的博客 413

foxyproxy_standard

FoxyProxy 是一款高级代理服务器管理工具,是 Firefox 火狐浏览器的代理插件,相比比 SwitchProxy、ProxyButton、QuickProxy、xyzproxy、ProxyTex 等扩展提供更多的功能。FoxyProxy 通过使用通配符、正则表达式和其他方便的方式为任意 URL 定义代理服务器,支持定义多个代理服务器。FoxyProxy 包含一个关于全部 URL 加载情况的日志,其中包括使用了哪一个代理服务器,匹配哪一个模版, 时间片的使用等详细信息。用户只需简单单击一个按钮即可暂时或永久启用或禁用代理服务器,无需任何设置即可支持 Tor 中的 Out-of-the-box 功能。同时,在状态栏可以看到当前代理服务器状态信息。这款火狐的代理插件灵活,稳健,功能丰富,安装使用简便,大家不妨试试吧。

上一篇: Java多线程
下一篇: Java全栈开发第一阶段--01.Java基础编程(Java语言概述-开发环境搭建)
在线学编程
博客等级 码龄4年 10粉丝 22原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值