Java枚举类型

声明枚举类型

java使用关键字 enum 声明枚举类型,语法格式如下:

enum 枚举名
{ 常量列表
}

其中的“常量列表”是用逗号分隔的字符序列,称为枚举类型的常量(需符合标识符规定)。例如:

enum x1ao
{ one,two,three,four
}

声明枚举变量

声明了一个枚举类型后,就可以用该枚举类型的枚举声明一个枚举变量了。例如:

x1ao x; //用到了上面的声明

这样,枚举类型就可以使用枚举名和","运算符获得枚举类型中的常量。

x = x1ao.one; //这时候使用System.out.println(x)就可以显示one字符串

说明与举例

可以在一个Java源文件中声明、定义枚举类型,然后保存源文件,最后单独编译源文件得到枚举类型的字节码文件,那么该字节码就可以被其他源文件中的类使用。下面给出示例:

Weekday.java文件

public enum Weekday{
 星期一,星期二,星期三,星期四,星期五,星期六,星期日
}

Example7.java

public class Example7{//文件名随便起,限制条件请分类查找java第一篇博客
   public static void main(String args[]){
	  Weekday x = Weekday.星期日;
	  if(x==Weekday.星期日){
	    System.out.println(x);
	    System.out.println("今天我休息!");
	  }
   }
} 

下面给出运行结果,大家可以自己运行试试,复制代码后将中文逗号等字符改成英文状态!!!

x1aolin@x1aolin-E402NA:~/桌面$ javac Example7.java 
x1aolin@x1aolin-E402NA:~/桌面$ java Example7
星期日
今天我休息!


补充:枚举类型与for,switch数组

  • 除了上面所说,枚举类型可以用枚举类型的名字.values()返回一个数组,该数组的值与该枚举类型中的常量一一对应。
  • jdk1.5后的版本允许switch语句中表达式的值是枚举类型。
### Java 枚举类型的定义与使用 #### 定义枚举类型Java中,枚举类型通过`enum`关键字定义。枚举类型本质上是一种特殊的类,它可以包含常量、方法和构造函数等[^3]。以下是一个简单的枚举类型定义示例: ```java public enum DayOfWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } ``` 上述代码定义了一个名为`DayOfWeek`的枚举类型,其中包含一周七天的常量。 #### 枚举类型的使用 枚举类型的主要作用是管理一组固定的常量集合[^2]。例如,可以将`DayOfWeek`用于表示一周中的某一天。以下是枚举类型的基本用法示例: ```java public class EnumExample { public static void main(String[] args) { DayOfWeek today = DayOfWeek.MONDAY; System.out.println("Today is " + today); } } ``` #### 枚举类型的常用方法 Java枚举类型提供了多个内置方法,如`values()`、`ordinal()`和`name()`等[^1]。这些方法可以帮助开发者更方便地操作枚举类型。 - `values()`:返回枚举类型的所有常量值。 - `ordinal()`:返回枚举常量的序号(从0开始)。 - `name()`:返回枚举常量的名称。 以下是一个使用这些方法的示例: ```java public class EnumMethodsExample { public static void main(String[] args) { for (DayOfWeek day : DayOfWeek.values()) { System.out.println("Name: " + day.name() + ", Ordinal: " + day.ordinal()); } } } ``` #### 枚举类型实现接口 枚举类型可以实现一个或多个接口[^3]。例如,以下代码展示了如何让枚举类型实现`Comparable`接口: ```java public enum Priority implements Comparable<Priority> { LOW, MEDIUM, HIGH; @Override public int compareTo(Priority other) { return this.ordinal() - other.ordinal(); } } ``` #### 枚举类型用于`switch`语句 枚举类型可以很好地与`switch`语句结合使用[^2]。以下是一个示例: ```java public class EnumSwitchExample { public static void main(String[] args) { DayOfWeek day = DayOfWeek.FRIDAY; switch (day) { case MONDAY: System.out.println("Start of the week."); break; case FRIDAY: System.out.println("End of the work week."); break; default: System.out.println("Another day."); } } } ``` #### 枚举类型的注意事项 - 枚举类型的常量是单例的,不能通过`new`关键字创建实例。 - 枚举类型可以定义构造函数、字段和方法,但其构造函数必须是私有的[^3]。 ### 示例代码 以下是一个综合示例,展示如何定义和使用带有字段和方法的枚举类型: ```java public enum Planet { MERCURY(3.303e+23, 2.4397e6), VENUS(4.869e+24, 6.0518e6), EARTH(5.976e+24, 6.37814e6); private final double mass; // 千克 private final double radius; // 米 Planet(double mass, double radius) { this.mass = mass; this.radius = radius; } public double getMass() { return mass; } public double getRadius() { return radius; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值