欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > Java 基础-31-枚举-认识枚举

Java 基础-31-枚举-认识枚举

2025/5/8 12:40:32 来源:https://blog.csdn.net/2301_77312064/article/details/147032531  浏览:    关键词:Java 基础-31-枚举-认识枚举

在Java编程语言中,枚举(Enum)是一种特殊的类,它允许一组固定的常量。它们非常适合用来表示一组固定的值,比如星期几、季节、颜色等。枚举自Java 5开始引入,为定义常量提供了一种更强大和方便的方式。本文将带你了解什么是枚举以及如何在Java中使用它们。

枚举的基本概念

枚举类型是一种特殊的数据类型,它允许变量成为一组预定义的常量。使用枚举可以减少代码中的错误,因为它们限制了变量只能是预先定义好的值之一。

定义一个简单的枚举

定义枚举很简单,使用enum关键字即可:

enum Day {SUNDAY, MONDAY, TUESDAY, WEDNESDAY,THURSDAY, FRIDAY, SATURDAY
}

上面的代码定义了一个名为Day的枚举,它包含了七个实例,分别代表一周中的每一天。

使用枚举

定义好枚举后,你可以在switch语句中使用它们来执行不同的操作,例如:

public class EnumDemo {Day day;public EnumDemo(Day day) {this.day = day;}public void tellItLikeItIs() {switch (day) {case MONDAY:System.out.println("Mondays are bad.");break;case FRIDAY:System.out.println("Fridays are better.");break;case SATURDAY:case SUNDAY:System.out.println("Weekends are best.");break;default:System.out.println("Midweek days are so-so.");break;}}public static void main(String[] args) {EnumDemo firstDay = new EnumDemo(Day.MONDAY);firstDay.tellItLikeItIs();EnumDemo thirdDay = new EnumDemo(Day.WEDNESDAY);thirdDay.tellItLikeItIs();}
}
枚举的高级用法

除了基本的使用方法,枚举还可以包含构造函数、方法、字段等,使得它们更加灵活和强大。例如:

enum Planet {MERCURY (3.303e+23, 2.4397e6),VENUS   (4.869e+24, 6.0518e6),EARTH   (5.976e+24, 6.37814e6),MARS    (6.421e+23, 3.3972e6);private final double mass;   // in kilogramsprivate final double radius; // in metersPlanet(double mass, double radius) {this.mass = mass;this.radius = radius;}public double mass() { return mass; }public double radius() { return radius; }// universal gravitational constant  (m3 kg-1 s-2)public static final double G = 6.67300E-11;public double surfaceGravity() {return G * mass / (radius * radius);}
}

在这个例子中,我们为每个行星添加了质量、半径属性,并提供了计算表面重力的方法。

总结

通过这篇文章,你应该对Java中的枚举有了基础的认识。枚举是一个非常有用的功能,能够帮助开发者编写更清晰、更安全的代码。无论是简单的还是复杂的场景,枚举都能提供有效的解决方案。希望这篇介绍能激发你进一步探索枚举的兴趣,并将其应用到你的项目中。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词