zoukankan      html  css  js  c++  java
  • 枚举

    问题:对象的某个属性的值不能是任意的,必须为固定的一组取值其中的某一个

    解决办法:

    1) 在setGrade方法中做判断,不符合格式要求就抛出异常

    2) 直接限定用户的选择,通过自定义类模拟枚举的方式来限定用户的输入

    写一个Grade类,私有构造函数,对外提供5个静态的常量表示类的实例

    3) jdk5中新定义了枚举类型,专门用于解决此类问题

    4) 枚举就是一个特殊的java类,可以定义属性、方法、构造函数、实现接口、继承类

    //枚举类就是一个java类,也可以声明属性,方法,构造函数

    public enum Grade4 {

    A("90-100"),B("80-89"),C("70-79"),D("60-69"),E("0-59");

     

    private String value;

    private Grade4(String value) {

    this.value = value;

    }

     

    public String getValue() {

    return value;

    }

    }

     

    //枚举类就是一个java类, 也可以继承抽象和实现接口

    public enum Grade5 {

    // 抽象类不能创建实例对象

    A("90-100"){

    // new了一个Grade5的子类实例

    public String toLocaleString() {

    return "优";

    }

    }

    ,B("80-89"){

    // new了一个Grade5的子类实例

    public String toLocaleString() {

    return "良";

    }

    }

    ,C("70-79"){

    // new了一个Grade5的子类实例

    public String toLocaleString() {

    return "中";

    }

    }

    ,D("60-69"){

    // new了一个Grade5的子类实例

    public String toLocaleString() {

    return "差";

    }

    }

    ,E("0-59"){

    // new了一个Grade5的子类实例

    public String toLocaleString() {

    return "不及格";

    }

    };

     

    private String value;

    private Grade5(String value) {

    this.value = value;

    }

     

    public String getValue() {

    return value;

    }

     

    // 对外提供一个方法,返回枚举的本地信息

    // 一个方法不知道如何实现,可以定义为抽象的

    public abstract String toLocaleString();

     

    }

  • 相关阅读:
    python
    redis
    mongodb replica on aws ec2
    mysql
    java正则表达式
    终端make命令和Git学习
    linux和shell学习
    centos普通用户安装jenkins
    centos7普通用户安装jdk
    WPF动画
  • 原文地址:https://www.cnblogs.com/qq809306794/p/3183194.html
Copyright © 2011-2022 走看看