枚舉類型是那些字段由一組固定常量組成的類型。常見的例子有:東南西北四個方向,星期幾等。java
全部枚舉類型都隱式繼承java.lang.Enum類型,由於java不支持多重繼承,因此枚舉不能繼承其餘任何類。this
java對枚舉的支持是語言級的支持,switch-case結構無需加枚舉名做爲前綴。spa
多個枚舉常量之間以逗號隔開,枚舉常量列表最後能夠以分號結束,若是有成員方法或成員變量,必須以分號結束。code
枚舉類型能夠有成員方法和成員變量。若是有成員方法和成員變量,枚舉常量列表要放在枚舉體最開始,以分號結尾。blog
枚舉類型的構造器必須是包級私有或者私有,構造器會自動建立枚舉類型體開端定義的枚舉常量。繼承
1 enum Day { 2 SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY 3 } 4 public class EnumTest { 5 static void tell(Day data) { 6 switch (data) { 7 case MONDAY : 8 System.out.println(1); 9 break; 10 case SUNDAY : 11 System.out.println(0); 12 default : 13 break; 14 } 15 } 16 public static void main(String[] args) { 17 Day x = Day.MONDAY; 18 tell(x); 19 for (Day i : Day.values()) { 20 System.out.println(i); 21 } 22 } 23 }
1 enum Planet { 2 MERCURY(303E23, 2.4397E6), VENUS(4.869E24, 6.0518E6), EARTH(5.97E24, 3 6.378E6); 4 final double mass; 5 double radius; 6 private Planet(double mass, double radius) { 7 this.mass = mass; 8 this.radius = radius; 9 } 10 final double G = 6.67E-11; 11 double getGravity() { 12 return G * mass / (radius * radius); 13 } 14 } 15 class EnumTest { 16 final int x; 17 public EnumTest() { 18 x = 3; 19 } 20 public static void main(String[] args) { 21 for (Planet i : Planet.values()) { 22 System.out.printf(i + "\t" + i.mass + "\t" + i.radius + "\t" 23 + i.getGravity()+"\n"); 24 } 25 } 26 }