某些情况下一个类的对象是有限而且固定的,例如性别就只有两个类(考虑大众情况)。因此这种实例有限而且固定的类,java里面叫枚举类。枚举类的关键字是enum,一些基本的命名规则和文件命名等细节和一般的类一样。但是具体还是有一些区别的:

  1.枚举类不能显式继承其他父类

  2.非抽象枚举类不能派生子类

  3.枚举类的构造器只能使用private访问控制符

  4.枚举类的所有实例必须在枚举类的第一行显式列出,系统会自动为这些实例添加public static final 修饰符

  5.枚举类通常是不可变类,因此成员变量最好都设置成private final 修饰

  

  下面看具体的例子:

package season;
public enum SeasonEnum
{
    SPRING("warm"),SUMMER("hot"),Fail("relax"),WINTER("cold");
    private final String description;

    private SeasonEnum(String description)
    {
        this.description = description;
    }

    public String season_description()
    {
        return this.description;
    }
}

package season;
public class Test
{
    public static void main(String[] args)
    {
        SeasonEnum season1 = Enum.valueOf(SeasonEnum.class,"SPRING");
        System.out.println(season1 + " present " + season1.season_description());

        for(SeasonEnum season2 : SeasonEnum.values())
        {
            System.out.println(season2);
        }
    }
}

  程序运行结果如下:

SPRING present warm
SPRING
SUMMER
Fail
WINTER

  在上面的程序中我们定义了一个枚举类SeasonEnum, 并通过Test类实现。其中有几个需要注意的地方:

  1.枚举类的构造器是private访问权限,因此在枚举类的第一行列出枚举类是要传入相应的参数;

  2.所有的枚举类都可以直接使用java.lang.Enum类中的方法。这里我们使用了valueOf(),注意第一个参数SeasonEnum.class;

  3.当用System.out.println() 输出枚举类的实例时,实际上添加了toString()方法,因此输出该枚举值的名字。

      

  

  

JAVA中的枚举类的更多相关文章

  1. Java中的枚举类为何不能有public构造器

    声明:本博客为原创博客.未经同意.不得转载!原文链接为http://blog.csdn.net/bettarwang/article/details/27262809. 从Java 5開始有了枚举类, ...

  2. java中的枚举类enum

    enum SeasonEnum {//枚举类: 本类规定了SeasonEnum(季节)类只能有四个对象SPRING,SUMMER,AUMUTN,WINTER //创建枚举类的的四个对象SPRING,S ...

  3. 【译】Java中的枚举

    前言 译文链接:http://www.programcreek.com/2014/01/java-enum-examples/ Java中的枚举跟其它普通类很像,在其内部包含了一堆预先定义好的对象集合 ...

  4. Java中的枚举类型详解

    枚举类型介绍 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中.而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义 ...

  5. 扒一扒: Java 中的枚举

    目录 1. 枚举的定义 1.1 传统的非枚举方法 1.2 枚举方法 1.3 定义总结 2 枚举的本质 2.1 继承 java.lang.Enum 2.2 final 类型 2.3 枚举常量本身就是该类 ...

  6. 浅谈 Java 中的枚举

    枚举也就是一一列举,常用来表示那些可以明确范围的集合,比方说性别,季节,星期,月份等. 在 JDK 1.5 才出现枚举类,在没有出现枚举类之前,我们要表示几个确定的值通常会使用常量来表示,形如 pub ...

  7. 全面解读Java中的枚举类型enum的使用

    这篇文章主要介绍了Java中的枚举类型enum的使用,开始之前先讲解了枚举的用处,然后还举了枚举在操作数据库时的实例,需要的朋友可以参考下 关于枚举 大多数地方写的枚举都是给一个枚举然后例子就开始sw ...

  8. Java 基础 enum枚举类 的创建/使用/接口继承 ,以及手动创建枚举类的对象为:public static final

    笔记: import java.lang.*; /**一:枚举类 : enum Season implements info { s1(),s2(),s3(),s4() }; //s1--s4 放在S ...

  9. Java中的BigDecimal类和int和Integer总结

    前言 我们都知道浮点型变量在进行计算的时候会出现丢失精度的问题.如下一段代码: System.out.println(0.05 + 0.01); System.out.println(1.0 - 0. ...

随机推荐

  1. log4j将日志文件输出到相对路径

    建议直接使用jvm中定义的变量或者操作系统的环境变量. log4j.appender.logfile.File=${user.dir}/logs/app.log,使用tomcat容器时${user.d ...

  2. [洛谷P2234][HNOI2002] 营业额统计 - Treap

    Description Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额. ...

  3. JavaScript是如何面向对象的

    一.引言 在16年的10月份,在校内双选会找前端实习的时候,hr问了一个问题:JavaScript的面向对象理解吗?我张口就说"JavaScript是基于原型的!".然后就没什么好 ...

  4. POJ-1287 Networking---裸的不能再裸的MST

    题目链接: https://vjudge.net/problem/POJ-1287 题目大意: 模板 #include<iostream> #include<cstdio> # ...

  5. 控件篇:CheckedListBox的全选与反选

    private void cbXmlAll_CheckedChanged(object sender, EventArgs e) { for (int i = 0; i < cblXmlList ...

  6. mongol学习

      启动mongodb 服务器:     进入mongodb文件夹:cd ~/mongodb     第一次先要创建set与log文件夹.   mkdir set; mkdir log;    并创建 ...

  7. DDD实战进阶第一波(五):开发一般业务的大健康行业直销系统(实现产品上下文领域层)

    从这篇文章开始,我们根据前面的DDD理论与DDD框架的约束,正式进入直销系统案例的开发. 本篇文章主要讲产品上下文中的领域层的主要实现,先简单讲下业务方面的需求:产品SPU与产品SKU,产品SPU主要 ...

  8. spring源码阅读(2)核心类介绍

    (1).BeanFactory作为一个主接口不继承任何接口,暂且称为一级接口. (2).有3个子接口继承了它,进行功能上的增强.这3个子接口称为二级接口. (3).ConfigurableBeanFa ...

  9. 机器学习技法:04 Soft-Margin Support Vector Machine

    Roadmap Motivation and Primal Problem Dual Problem Messages behind Soft-Margin SVM Model Selection S ...

  10. [Codeforces 864A]Fair Game

    Description Petya and Vasya decided to play a game. They have n cards (n is an even number). A singl ...