zoukankan      html  css  js  c++  java
  • 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,只能调用类内静态常量。





  • 相关阅读:
    SharePoint和Reporting Services整合 样式问题
    SharePoint2010安装体验(二)
    Moss 文件夹审批
    Moss中的控件—PeoplePicker
    C# 温故而知新:Stream篇(—)
    Entity Framework框架Code First Fluent API
    C# 温故而知新:Stream篇(二)
    扩展RBAC用户角色权限设计方案
    常见C#面试试题
    Spring Cloud之Ribbon负载均衡(Spring Cloud 2020.0.3版)
  • 原文地址:https://www.cnblogs.com/xz1367/p/2237298.html
Copyright © 2011-2022 走看看