java中的枚举类型

时间:2023-03-09 02:14:09
java中的枚举类型

枚举类型是那些字段由一组固定常量组成的类型。常见的例子有:东南西北四个方向,星期几等。

所有枚举类型都隐式继承java.lang.Enum类型,因为java不支持多重继承,所以枚举不能继承其他任何类。

java对枚举的支持是语言级的支持,switch-case结构无需加枚举名作为前缀。

多个枚举常量之间以逗号隔开,枚举常量列表最后可以以分号结束,如果有成员方法或成员变量,必须以分号结束。

枚举类型可以有成员方法和成员变量。如果有成员方法和成员变量,枚举常量列表要放在枚举体最开始,以分号结尾。

枚举类型的构造器必须是包级私有或者私有,构造器会自动创建枚举类型体开端定义的枚举常量。

 enum Day {
     SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
 }
 public class EnumTest {
     static void tell(Day data) {
         switch (data) {
             case MONDAY :
                 System.out.println(1);
                 break;
             case SUNDAY :
                 System.out.println(0);
             default :
                 break;
         }
     }
     public static void main(String[] args) {
         Day x = Day.MONDAY;
         tell(x);
         for (Day i : Day.values()) {
             System.out.println(i);
         }
     }
 }
 enum Planet {
     MERCURY(303E23, 2.4397E6), VENUS(4.869E24, 6.0518E6), EARTH(5.97E24,
             6.378E6);
     final double mass;
     double radius;
     private Planet(double mass, double radius) {
         this.mass = mass;
         this.radius = radius;
     }
     final double G = 6.67E-11;
     double getGravity() {
         return G * mass / (radius * radius);
     }
 }
 class EnumTest {
     final int x;
     public EnumTest() {
         x = 3;
     }
     public static void main(String[] args) {
         for (Planet i : Planet.values()) {
             System.out.printf(i + "\t" + i.mass + "\t" + i.radius + "\t"
                     + i.getGravity()+"\n");
         }
     }
 }