枚举
来源:互联网 发布:淘宝复刻wtaps的鲁总 编辑:程序博客网 时间:2024/06/05 21:50
package com.h.test;/** * 手动实现枚举类 * @author wh * */public class Grade { //1.私有化构造器,将构造器隐藏起来 private Grade(){} //2.将该类所有可能的实例都用public static final修饰 public static final Grade A = new Grade(); public static final Grade B = new Grade(); public static final Grade C = new Grade(); public static final Grade D = new Grade();}
package com.h.test;/** * 默认构造函数实现枚举 * @author wh * */public enum Grade2 { /*A,B,C,D;*/ //等效的第二种写法 A(),B(),C(),D(); private Grade2(){}}
package com.h.test;/** * 有参构造函数的枚举类定义 * @author wh * */public enum Grade3 { A("100-90"),B("90-80"),C("80-70"),D("70-60"); private String score; public String getScore(){ return score; } private Grade3(String score){ this.score = score; }}
package com.h.test;/** * 枚举类中定义抽象方法,返回更多信息 * @author wh */public enum Grade4 { A("100-90"){ @Override public String getDescribeOfScore() { return "优秀"; } },B("90-80"){ @Override public String getDescribeOfScore() { return "良好"; } },C("80-60"){ @Override public String getDescribeOfScore() { return "一般"; } },D("60-0"){ @Override public String getDescribeOfScore() { return "不及格"; } }; private String score; public String getScore(){ return score; } private Grade4(String score){ this.score = score; } //定义一个抽象方法,返回每个成绩段对应的描述 public abstract String getDescribeOfScore();}
package com.h.test;public class Test { public static void main(String[] args) { /*Student s = new Student(); s.setGrade(Grade.A); System.out.println(s.getGrade());//com.h.test.Grade@... */ /*Student s = new Student(); s.setGrade(Grade2.A); System.out.println(s.getGrade());//A*/ /*Student s = new Student(); s.setGrade(Grade3.A); System.out.println(s.getGrade()+":"+s.getGrade().getScore());*/ Student s = new Student(); s.setGrade(Grade4.D); System.out.println(s.getGrade()+":"+s.getGrade().getScore()+":"+s.getGrade().getDescribeOfScore()); /** * 枚举类API * name() * ordinal() * valueOf() * values():JDK中没有,用来遍历枚举类的所有值 */ System.out.println(Grade4.C.name()); //获取枚举的位置(下标) System.out.println(Grade4.C.ordinal());//2 //将字符串转换为枚举类型 //Grade4 g = Grade4.valueOf("B"); Grade4 gg = Grade4.valueOf(Grade4.class, "B"); System.out.println(gg.getDescribeOfScore()); //遍历所有的枚举值 Grade4[] grades = Grade4.values(); for (Grade4 g : grades) { System.out.println(g.name()+":"+g.ordinal()+":"+g.getScore()+":"+g.getDescribeOfScore()); } }}
0 0
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- django QuerySets结果集是延迟的
- Android架构(一)MVP全解析
- Android 透明色
- leetcode weekly contest #26
- 测试小故事26:软件测试的艺术
- 枚举
- ubuntu 16.04 安装 opencv3.2.0 with python 3.5
- getAttribute和getParameter的区别
- 顺序表和链表的比较和区别
- Gym
- codeforces 776E
- PAT(乙) 1022. D进制的A+B (20)
- php中数组入库方法
- python .strip()