• Enumeration的学习


            枚举是jdk5.0之后的新特性。枚举的使用在编程中能起到很大的作用,本文从枚举的适用范围、枚举的特点、枚举的使用等三个方面学习枚举

    一、枚举的使适用范围

    “在有限的范围内选择值”:比如一个星期只有星期一到星期日,不可能出现星期八。

    二、枚举的特点

    1、枚举类是一种特殊形式的Java类。

    2、枚举类中声明的每一个枚举值代表枚举类的一个实例对象。(在枚举的使用中会讲到)

    3、与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数,但枚举类的构造函数必须为私有的(这点不难理解)。

    4、枚举类也可以实现接口、或继承抽象类。

    5、JDK5中扩展了swith语句,它除了可以接收int, byte, char, short外,还可以接收一个枚举类型。

    6、若枚举类只有一个枚举值,则可以当作单态设计模式使用。

    三、枚举的使用

    示例:查询学生的成绩,成绩范围对应成绩的等级

    //适用范围:在有限的范围内选择值
    public class EnumerationTest {
    public static void main(String[] args) {

    //查询指定等级的成绩分数
    EnumerationTest t=new EnumerationTest();
    t.setGrade(Grade.E);
    System.out.println(t.getGrade().getScore()+" "+t.getGrade().toLocalGrade());

    //switch在enumeration中的应用
    Grade grade=Grade.A;
    switch (grade){
    case A:
    System.out.println("优");
    break;
    case B:
    System.out.println("良");
    break;
    default:
    System.out.println("不及格");
    break;
    }
    //枚举的常用方法
    for(Grade grade1:Grade.values()){//values()遍历枚举类的所有值 name()获取枚举的值 ordinal():获取枚举的序号
    System.out.println(grade1.name()+" "+grade1.ordinal());
    }


    }

    private String name;
    private Grade grade;

    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }

    public Grade getGrade() {
    return grade;
    }

    public void setGrade(Grade grade) {
    this.grade = grade;
    }
    }
    //枚举类
    enum Grade{//含有抽象方法的类一定是抽象类
    A("100-90"){ //A表示被实例化的对象 private Grade(String score) 枚举类中声明的每一个枚举值代表枚举类的一个实例对象。 A相当于 Grade A=new Grade();
    @Override
    public String toLocalGrade() {//使用匿名内部类实现枚举类的抽象方法
    return "优";
    }
    },
    B("89-80"){//枚举类中声明的每一个枚举值代表枚举类的一个实例对象。
    @Override
    public String toLocalGrade() {
    return "良";
    }
    },
    C("79-70"){
    @Override
    public String toLocalGrade() {
    return "好";
    }
    },
    D("69-60"){
    @Override
    public String toLocalGrade() {
    return "及格";
    }
    },
    E("59-50"){
    @Override
    public String toLocalGrade() {
    return "不及格";
    }
    },
    F("49-40"){
    @Override
    public String toLocalGrade() {
    return "最差";
    }
    };

    private String score;
    private Grade(String score){
    this.score=score;
    }
    //该分数为只读的,不能对其进行修改
    public String getScore() {
    return score;
    }
    public abstract String toLocalGrade();
    }
  • 相关阅读:
    关于二进制包安装MySQL出现yum安装保护多库场景解决
    关于 Fatal NI connect error 12170 错误
    调优排故笔记1-利用等待事件及相关文件和视图-Oracle内核揭秘
    MySQL的四种隔离级别
    Oracle绑定变量
    接口加密测试
    接口测试用例设计
    学习总结——接口测试中抓包工具的使用
    学习总结——JMeter做WebService接口功能测试
    JMeter做http接口压力测试
  • 原文地址:https://www.cnblogs.com/kelly-one/p/7859906.html
Copyright © 2020-2023  润新知