Java 枚举
来源:互联网 发布:美工设计招聘要求 编辑:程序博客网 时间:2024/06/06 01:29
public class Student { /* 使用常量,不够优雅 private String name; private String grade; //成绩等级 A B C D E public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGrade() { return grade; } public void setGrade(String grade) throws Exception { if(!grade.matches("[ABCDE]")){ throw new Exception("赋值不正确!"); } this.grade = grade; } */ private String name; private String grade; //成绩等级 A B C D E public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGrade() { return grade; } public void setGrade(String grade) throws Exception { if (!grade.matches("[ABCDE]")) { throw new Exception("赋值不正确!"); } this.grade = grade; } } enum Grade { A("100-90") { public String toLocaleGrade() { return "优"; } }, /* 原理 public static Grade B = new Grade(){ public String toLocaleGrade(){ return "良好"; } }; */ B("89-80") { public String toLocaleGrade() { return "良好"; } }, C("79-70") { public String toLocaleGrade() { return "好"; } }, D("69-60") { public String toLocaleGrade() { return "及格"; } }, E("59-0") { public String toLocaleGrade() { return "没及格"; } }; /* 原理 public static Grade A = new Grade("100-90"); */ private Grade(String score) { this.score = score; } private String score; public String getScore() { return score; } // 抽象方法 public abstract String toLocaleGrade(); } @Test public void 枚举测试(){ /* Student stu = new Student(); stu.setGrade(Grade.D); //给学生类中的grade变量赋值 //取出学生对象中的grade变量,调用grade对象中的getScore()取出对应的数值:100-90 。。。 System.out.println(stu.getGrade().getScore()); //取出学生对象中的grade变量,调用grade对象中的toLocaleGrade()取出对应的(数值):优,良。。。 System.out.println(stu.getGrade().toLocaleGrade()); */ // switch 的应用 Grade g = Grade.B; switch (g) { case A: System.out.println(g.getScore()+" "+g.toLocaleGrade()+" 继续努力"); break; case B: System.out.println(g.getScore()+" "+g.toLocaleGrade()+" 继续努力"); break; case C: System.out.println(g.getScore()+" "+g.toLocaleGrade()+" 继续努力"); break; default: System.out.println(g.getScore()); break; } // 输出 enum 中的值 和 索引 for (Grade gg : Grade.values()) { System.out.println(gg.name() + "\t" + gg.ordinal()); // name() } // 将一个 Object 转换成 枚举,需要是枚举中的值 Grade a = Grade.valueOf("A"); if (a == Grade.A) { System.out.println("OK"); } else { System.out.println("error"); } }/*输出结果89-80 良好 继续努力A 0B 1C 2D 3E 4OK*/
阅读全文
0 0
- JAVA 枚举
- java枚举
- java枚举
- Java 枚举
- Java 枚举
- Java 枚举
- java 枚举
- java 枚举
- java枚举
- java枚举
- java枚举
- java枚举
- Java枚举
- java枚举
- java 枚举
- java枚举
- Java枚举
- Java枚举
- ActionBar 顶部标题栏 详解
- 用qsort对二维数组进行排序
- 体验vSphere 6之1-安装VMware ESXi 6 RC版
- 服务器集群负载均衡原理
- 机器学习实战_k近邻算法识别手写数字代码解读
- Java 枚举
- JDBC基础知识汇总
- Spring 系列: Spring 框架简介
- 练习(5)
- 字符串和数组相互转换
- 实验3_类与对象的构造和应用
- 在使用spring-kafka进行并发推送和接收数据
- information_schema系统表——PROCESSLIST
- 五周三次课(11月15日) 11.4 re的matche方法和search方法 11.5 re的split,findall,finditer方法 11.6 re的match对象