枚举类型是一个常量集合的数据类型。
因为都是常量,所以一个枚举类型中的字段名都要大写。
在JAVA中,枚举类型的定义是通过“enum“关键字进行的。例如你要定义
一个表示一个星期的每一天的枚举类型:
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,
SATURDAY
}
强烈建议当你需要定义一组常量时,使用枚举类型。
下面我们来看怎样使用上面定义的类型Day:
public class EnumTest {
Day day;
public EnumTest(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.")
}
}
public static void main(String[] args){
EnumTest firstDay = new EnumTest(Day.MONDAY);
firstDay.tellItLikeItIs();
EnumTest thirdDay = new EnumTest(Day.WEDNESDAY);
thirdDay.tellItLikeItIs();
EnumTest fifthDay = new EnumTest(Day.FRIDAY);
fifthDay.tellItLikeItIs();
EnumTest sixthDay = new EnumTest(Day.SATURDAY);
sixthDay.tellItLikeItIs();
EnumTest seventhDay = new EnumTest(Day.SUNDAY);
seventhDay.tellItLikeItIs();
}
}
输出:
Mondays are bad.
Midweek days are so-so.
Fridays are better.
Weekends are best.
Weekends are best.
JAVA中的枚举类型比其他语言中的要强大得多。枚举类型声明时会
定义一个类(class),这个类中可以含有其他方法和字段。编译器在
创建一个枚举类型时会自动添加一些方法。例如,添加一个静态方法values()
,这个方法会以定义时的顺序返回所有的常量。
for (Planet p : Planet.values()) {
System.out.printf("Your weight on %s is %f%n",
p, p.surfaceWeight(mass));
}
注意: 所有的枚举类型隐性地继承自 java.lang.Enum。因为JAVA
是单根继承。一个枚举类型无法继承其他类型。
在下面的例子中,Planet是一个用来表示太阳系中的星体的枚举
类型。他们带有属性mass和radius。Planet中的每个常量在声明
时都带有参数值。这些参数值都会传给Planet 的构造函数。JAVA
要求先声明常量,再定义字段和方法。当存在字段和方法的时候,
所有枚举常量声明结束时要用“;“,它们之间用” ,”。
注意:枚举类型的构造函数的修饰符必须是package-private或者
private。你不能调用这些构造函数。
下面这个枚举类型拥有计算一个物体在这个星体上的重量的方法。
public 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),
JUPITER (1.9e+27, 7.1492e7),
SATURN (5.688e+26, 6.0268e7),
URANUS (8.686e+25, 2.5559e7),
NEPTUNE (1.024e+26, 2.4746e7);
private final double mass; // in kilograms
private final double radius; // in meters
Planet(double mass, double radius) {
this.mass = mass;
this.radius = radius;
}
private double mass() { return mass; }
private double radius() { return radius; }
// universal gravitational constant (m3 kg-1 s-2)
public static final double G = 6.67300E-11;
double surfaceGravity() {
return G * mass / (radius * radius);
}
double surfaceWeight(double otherMass) {
return otherMass * surfaceGravity();
}
public static void main(String[] args) {
double earthWeight = Double.parseDouble(args[0]);
double mass = earthWeight/EARTH.surfaceGravity();
for (Planet p : Planet.values())
System.out.printf("Your weight on %s is %f%n",
p, p.surfaceWeight(mass));
}
}
分享到:
相关推荐
枚举类型以`enum`关键字开始,后跟枚举名,然后是花括号{},里面列举出枚举常量。例如: ```c enum Color {Red, Green, Blue}; ``` 这里定义了一个名为`Color`的枚举类型,包含三个枚举常量:Red、Green和Blue...
Enum 枚举类型是 Java 5 中引入的一种新特性,旨在解决传统的 int 枚举常量的缺陷。 1. 枚举语法 在 Java 中,枚举类型是用 enum 关键字来定义的。枚举元素列表必须写在枚举类的最前面,每个元素之间用逗号隔开,...
本文实例总结了python模拟enum枚举类型的方法。分享给大家供大家参考。具体分析如下: python中没有enum枚举类型,可能python认为这玩意压根就没用,下面列举了三种方法模拟enum枚举类型 方法1. 使用自定义类 class...
以下几种方法来模拟enum:(感觉方法一简单实用) 复制代码 代码如下: # way1 class Directions: up = 0 down = 1 left = 2 right =3 print Directions.down # way2 dirUp, dirDown, dirLeft, dirRight =...
给刚学C#的同学一些帮助 public enum CardColor : byte { 红桃, 方片, 梅花, 黑桃, }
Java枚举类型(Enum)是Java SE 5.0引入的一种新的数据类型,它为开发者提供了更为强大且安全的方式来表示一组常量。枚举在Java中不仅是一个类,还是一种特殊的类型,允许我们定义自己的常量集合。接下来,我们将...
JavaScript中的枚举类型(enum)并不是语言内建的特性,如C#或Java等其他语言。然而,开发者可以通过模拟枚举的行为来实现类似的功能。在JavaScript中,我们通常使用对象(object)来模拟枚举,就像示例代码中所示。...
尽管枚举类不能被继承,但每个枚举类型都隐式地继承了`java.lang.Enum`类,这意味着它们可以实现接口并提供具体实现。这使得枚举可以具有多态行为。 6. 枚举的序列化 默认情况下,枚举是可序列化的。如果不需要...
枚举类型(Enum)是程序设计中的一种数据类型,它允许我们定义一组具有特定名称的常量。这些常量在程序中通常代表特定的、离散的状态或值,如一周中的天数。枚举类型在许多编程语言中都有支持,包括C、C++和C#等。 ...
其中,enum是枚举类型的标志,枚举类型名是由用户定义的标识符,枚举值是由用户定义的整型常量。 例如,定义一个枚举类型enum color,要求包含红色、绿色、蓝色三个枚举值: enum color { RED, GREEN, BLUE }; 在...
以下是对Swift中`enum`枚举类型的详细讲解: 1. **枚举的基本使用** Swift中的枚举使用`enum`关键字定义,每个枚举值通过`case`关键字声明。例如,我们可以创建一个表示姓氏的枚举: ```swift enum Surname { ...
Java中的枚举类型`Enum`是面向对象编程中一种强大的工具,它允许程序员定义自己的常量集合。在Java中,枚举类型不是简单的常量数组,而是一种完整的类,具有类的所有特性,如方法、构造函数和继承。下面将详细探讨`...
首先,枚举类型的定义由关键字`enum`引导,后跟枚举类型名和枚举元素表。例如: ```c enum 枚举类型名 { 枚举元素表 }; ``` 枚举类型名是你为该枚举类型指定的一个标识符,而枚举元素表则是一系列用逗号分隔的枚举...
### C++中的枚举类型(Enum) 在C++编程语言中,枚举(`enum`)是一种用户定义的类型,它由一组具有整数值的命名常量组成。这些值可以被程序用来代替数字,使代码更具可读性,并且能够表示特定范围内的固定集合。 ...
共同体(Union)与枚举类型(Enum)是C语言中两种特殊的复合数据类型,它们各自在特定场景下有着独特的作用。 共同体(Union)是C语言中一种存储结构,它允许在一个存储位置上存储不同类型的数据。这与结构体...
1. **预定义的方法**:每个枚举类型都自动继承了`java.lang.Enum`类,因此它们拥有`toString()`、`compareTo()`等方法。 2. **唯一性**:枚举实例的创建是在编译时完成的,确保了每个枚举值的唯一性。 3. **安全性**...
【7enum枚举字函数程序案例VC共4页.pdf】 这个压缩包文件包含了一个关于“7enum枚举字函数”的程序案例,适用于Visual C++(VC)开发环境。7enum,顾名思义,可能是一种自定义的枚举类型或者一个特定的枚举工具,...
在Python中,枚举类型通过enum模块中的Enum类来实现,这使得代码更加清晰、易于维护,并且可以避免魔术数字和字符串的滥用。本文将详细介绍如何在Python中使用枚举类型,包括枚举的基础概念、创建和使用枚举类的步骤...