莆田网站建设收费标准,优秀企业网站的优缺点,lamp网站开发制作,网站前端培训在JDK1.5之前没有enum关键字#xff0c;如果想使用枚举类#xff0c;程序员需要根据Java语言的规则自行设计。从JDK1.5开始#xff0c;Java语言添加了enum关键字#xff0c;可以通过该关键字方便地定义枚举类。这种枚举类有自己的程序编写规则#xff0c;并且具有一些特殊… 在JDK1.5之前没有enum关键字如果想使用枚举类程序员需要根据Java语言的规则自行设计。从JDK1.5开始Java语言添加了enum关键字可以通过该关键字方便地定义枚举类。这种枚举类有自己的程序编写规则并且具有一些特殊方法。 下面是笔者分别针对自定义枚举类和enum枚举类的程序设计。 [1] 自定义枚举类 1 /*-------------------------2 JDK1.5之前通过自行设计程序来自定义枚举类3 下面以季节为例自定义枚举类4 --------------------------*/5 package pack01;6 7 public class Season {8 public static void main(String[] args) {9
10 FourSeasons spring FourSeasons.SPRING;
11 FourSeasons winter FourSeasons.WINTER;
12
13 System.out.println( spring.getName() );
14 System.out.println( spring.toString() );
15 System.out.println();
16 System.out.println( winter.getName() );
17 System.out.println( winter.toString() );
18 }
19 }
20
21 // 定义表示季节的枚举类共有4个内部对象
22 class FourSeasons {
23
24 // 定义类的属性私有的终态的在构造器中进行初始化
25 private final String name;
26
27 // 将构造器私有化使构造器不能在类的外部被使用
28 private FourSeasons(String name) {
29 this.name name;
30 }
31
32 // get方法返回属性值
33 public String getName() {
34 return name;
35 }
36
37 // 覆盖toString方法设置默认打印值
38 public String toString() {
39 return This is name;
40 }
41
42 // 在类的内部创建对象
43 public static final FourSeasons SPRING new FourSeasons(spring);
44 public static final FourSeasons SUMMER new FourSeasons(summer);
45 public static final FourSeasons AUTUMN new FourSeasons(autumn);
46 public static final FourSeasons WINTER new FourSeasons(winter);
47 } [2] 使用enum关键字定义枚举类 1 /*-------------------------2 JDK1.5开始可以通过enum关键字来定义枚举类3 使用enum关键字定义枚举类与自定义枚举类的程序编写不同之处4 ....//将关键字class用关键字enum替换5 ....//必须在类体的一开始创建内部的对象并遵循一定的书写规则6 ....//枚举类有两个常用的方法7 ........//values()将枚举类中的所有对象以数组的方式返回8 ........//valueOf(String arg0)将类中的某一个对象的名字以字符串的形式作为参数传入返回该对象9 ....//枚举类可以实现接口覆盖接口中的抽象方法既可以写在枚举类的类体中也可以写在对象后的花括号中
10 ........//若写在了对象后的花括号中则该方法不再是所有对象公共的。不同对象调用同一方法时可以得到不同的效果。
11
12 下面以季节为例使用enum关键字定义枚举类
13 --------------------------*/
14 package pack02;
15
16 public class Season {
17 public static void main(String[] args) {
18
19 //测试枚举类中的values()方法
20 FourSeasons[] seasons FourSeasons.values();
21 for( int i0; iseasons.length; i ) {
22 System.out.println( seasons[i].getName() );
23 }
24 System.out.println();
25
26 //测试枚举类中的valueOf()方法创建春天的对象
27 FourSeasons spring FourSeasons.valueOf(SPRING);
28 System.out.println( valueOf(\SPRING\): spring.getName() \n );
29
30 //创建夏秋冬的对象
31 FourSeasons summer FourSeasons.SUMMER;
32 FourSeasons autumn FourSeasons.AUTUMN;
33 FourSeasons winter FourSeasons.WINTER;
34 spring.printWords();
35 summer.printWords();
36 autumn.printWords();
37 winter.printWords();
38 //上面调用接口中的方法打印出来的结果春天与其他三个季节是不同的因为SPRING对象重新覆盖了接口中的方法
39 }
40 }
41
42 //定义一个接口让枚举类来实现该接口
43 interface Inter{
44 void printWords();
45 }
46
47 // 定义表示季节的枚举类共有4个内部对象
48 enum FourSeasons implements Inter { //使用enum关键字并实现上述接口
49
50 //必须在类体中的一开始创建对象对象之间用逗号分开并且要遵循一定的书写规则
51 SPRING(spring){
52 public void printWords() {//在创建对象时可以单独重写接口中的方法这时类体中的重写方法对于该对象将不再起作用
53 System.out.println(This is spring);
54 }
55 },
56 SUMMER(summer),
57 AUTUMN(autumn),
58 WINTER(winter);
59
60 // 定义类的属性私有的终态的在构造器中进行初始化
61 private final String name;
62
63 // 将构造器私有化使构造器不能在类的外部被使用
64 private FourSeasons(String name) {
65 this.name name;
66 }
67
68 // get方法返回属性值
69 public String getName() {
70 return name;
71 }
72
73 // 重写接口中的抽象方法
74 public void printWords() {
75 System.out.println(There are four different seasons.);
76 }
77 } 注希望与各位读者相互交流共同学习进步。转载于:https://www.cnblogs.com/EarthPioneer/p/9378181.html