• enum 枚举


    1,定义:枚举是一个具有特定值的类型,对于用户来说只能任取其一,对于面向对象来说时是一个类的对象已经创建好,用户不能新生枚举对象,只能选择一个已经生成好的对象。

    2,枚举本质上也是一个类,一个final类,类不能被继承,且构造方法必须私有,一个枚举值是一个公共静态常量,也是这个类的一个对象。

    在没有出现enum时的自定义枚举类:

    1,

    View Code
    public class Season {
    public static final int SPRING=0;
    public static final int SUMMER=1;
    public static final int AUTUMN=2;
    public static final int WINTER=3;
    }

    这样写时在调用的时候

    View Code
    public void show(int t){
    if(t==Season.SPRING){
    ...
    }
    }

    传递的传说可以是0,1,2,3也可以是别的数值,而程序没有匹配的值,也不会报错,数据也不安全。

    2,接着出现了一种类型安全的枚举类:

    View Code
    public final class Season {
    public static final Season SPRING = new Season();
    public static final Season SUMMER = new Season();
    public static final Season AUTUMN = new Season();
    public static final Season WINTER = new Season();

    private Season() {
    }
    }

    用private构造方法,不让用户自己new出对象。

    3,枚举其实就是类型安全的枚举类,可以有属性,方法。

    View Code
    public enum Season {
    SPRING, SUMMER, AUTUMN, WINTER,
    }

    枚举继承自java.lang.Enum,枚举值相当于Season类型的静态常量。

    4

    View Code
    public enum Season {
    SPRING("春"), SUMMER("夏"), AUTUMN("秋"), WINTER("冬");
    private String name;

    Season(String name) {
    this.name = name;
    }

    public String getName() {
    return this.name;
    }
    }

    Season s=Season.SPRING;由于不能new,只能调用类内静态常量。





  • 相关阅读:
    显存与纹理内存详解
    UE4 编译虚幻引擎
    利用Lua脚本语言制作魔兽WOW插件
    详解液晶面板制造全过程
    游戏引擎剖析
    数据库常见面试题
    Selenium Webdriver元素定位的八种常用方式
    Windows 安装 Mongodb
    Redis在windows下安装过程
    python 关于一个懒惰和非懒惰的
  • 原文地址:https://www.cnblogs.com/xz1367/p/2237298.html
Copyright © 2020-2023  润新知