Thinking in Java 第5章 初始化与清理 【枚举类型】
2016-07-04 09:27
681 查看
//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社
例:
– 创建 enum 时,编译器会自动添加一些有用的特性。
例:
– enum 是一种类,具有自己的方法。
– enum 可以在 switch 语句中使用。
例:
枚举类型,关键字 enum
– 枚举类型的实例是常量,按命名习惯它们都用大写字母表示,如果在一个名字中有多个单词,用下划线将它们隔开。例:
package initialization;//: initialization/Spiciness.java public enum Spiciness { NOT, MILD, MEDIUM, HOT, FLAMING } ///:~
– 创建 enum 时,编译器会自动添加一些有用的特性。
例:
package initialization;//: initialization/EnumOrder.java public class EnumOrder { public static void main(String[] args) { for(Spiciness s : Spiciness.values()) System.out.println(s + ", ordinal " + s.ordinal()); } }
– enum 是一种类,具有自己的方法。
– enum 可以在 switch 语句中使用。
例:
package initialization;//: initialization/Burrito.java public class Burrito { Spiciness degree; public Burrito(Spiciness degree) { this.degree = degree;} public void describe() { System.out.print("This burrito is "); switch(degree) { case NOT: System.out.println("not spicy at all."); break; case MILD: case MEDIUM: System.out.println("a little hot."); break; case HOT: case FLAMING: default: System.out.println("maybe too hot."); } } public static void main(String[] args) { Burrito plain = new Burrito(Spiciness.NOT), greenChile = new Burrito(Spiciness.MEDIUM), jalapeno = new Burrito(Spiciness.HOT); plain.describe(); greenChile.describe(); jalapeno.describe(); } }
练习 21
创建一个 enum,它包含纸币中最小面值的 6 种类型。通过 values() 循环并打印每一个值及其 ordinal()。package JT_practice; /** * Created by JT on 2016/7/4. */ enum Money { ONE, TWO, FIVE, TEN, TWENTY, FIFTY, ONE_HUNDRED; } public class practice_21 { public static void main(String[] args){ for(Money m : Money.values()) System.out.println(m + ".ordinal " + m.ordinal()); // ordinal(): 求序数 } }
练习 22
在前面的例子中,为 enum 写一个 switch 语句,对于每一个 case,输出该特定货币的描述。package JT_practice; /** * Created by JT on 2016/7/4. */ enum Money { ONE, TWO, FIVE, TEN, TWENTY, FIFTY, ONE_HUNDRED; } public class Practice_22 { Money money; public Practice_22(Money money){ this.money = money; } public void describe(){ System.out.print("This money is "); switch (money){ case ONE: System.out.println("¥1"); break; case TWO: System.out.println("¥2"); break; case FIVE: System.out.println("¥5"); break; case TEN: System.out.println("¥10"); break; case TWENTY: System.out.println("¥20"); break; case FIFTY: System.out.println("¥50"); break; case ONE_HUNDRED: System.out.println("¥100"); break; default: System.out.println("Something is wrong!"); } } public static void main(String[] args){ Practice_22 money1 = new Practice_22(Money.ONE); Practice_22 money2 = new Practice_22(Money.TWO); Practice_22 money5 = new Practice_22(Money.FIVE); Practice_22 money10 = new Practice_22(Money.TEN); Practice_22 money20 = new Practice_22(Money.TWENTY); Practice_22 money50 = new Practice_22(Money.FIFTY); Practice_22 money100 = new Practice_22(Money.ONE_HUNDRED); money1.describe(); money2.describe(); money5.describe(); money10.describe(); money20.describe(); money50.describe(); money100.describe(); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树