java 枚举enum定义的方法与位置。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 枚举enum定义的方法与位置。相关的知识,希望对你有一定的参考价值。

我能不能把enum定义在一个单独的.java文件中?就像其他类一样。如果可以,其他的类怎么引用这个枚举呢?

可以的,枚举的定义是这样的
public enum SEX
MEN,WOMEN;


在其它类中引用枚举非常简单,可以向以前使用的java中的常量一样使用。


SEX.MEN或SEX.WOMEN
枚举和一般的类是一样的,有一个好处就是你使用的时候不用创建对象了,java帮我们创建好了。当然,在枚举里面也可以定义方法,建议你看一下这方面的书籍。
参考技术A

java枚举定义的方法:

1.原始的接口定义常量

public interface IConstants 
    String MON = "Mon";
    String TUE = "Tue";
    String WED = "Wed";
    String THU = "Thu";
    String FRI = "Fri";
    String SAT = "Sat";
    String SUN = "Sun";

  2.使用的位置如下,一般在switch语句中使用:

package com.hmw.test;

/**

 * 枚举测试类

 * @author <a href="mailto:hemingwang0902@126.com">何明旺</a>

 */

public enum EnumTest

    MON, TUE, WED, THU, FRI, SAT, SUN;

   

这段代码实际上调用了7次 Enum(String name, int ordinal):

new Enum<EnumTest>("MON",0);

new Enum<EnumTest>("TUE",1);

new Enum<EnumTest>("WED",2);

    ... ...

   

遍历、switch 等常用操作

对enum进行遍历和switch的操作示例代码:

public class Test

    public static void main(String[] args)

        for (EnumTest e : EnumTest.values())

            System.out.println(e.toString());

        

         

        System.out.println("----------------我是分隔线------------------");

         

        EnumTest test = EnumTest.TUE;

        switch (test)

        case MON:

            System.out.println("今天是星期一");

            break;

        case TUE:

            System.out.println("今天是星期二");

            break;

        // ... ...

        default:

            System.out.println(test);

            break;

        

    

   

输出结果:

MON

TUE

WED

THU

FRI

SAT

SUN


   

参考技术B 你完全可以把enum看成标准的一个类。
一样可以命名包,导入。
枚举常量在比较时,需要使用equals或compareTo方法。
switch选择时,可直接使用枚举常量值。本回答被提问者采纳

枚举 Enum

枚举是java 5新增了一个menu关键字(它与class、interface关键字的地位相同),

用于定义枚举,枚举是一种特殊的类,它一样有自己的Fileld、方法,可以实现一个或多个接口,也可以定义自己的构造器。

一个java源文件中最多只能定义一个public访问权限的枚举类,且该java源文件也必须和枚举类的类名相同。

但枚举毕竟不是普通的java类,它与普通类有如下简单的区别:
  1、枚举类可以实现一个活多个接口,使用menu定义的枚举直接继承了java.long.Enum类,而不是继承Object类。其中java.long.Enum类实现了java.long.Serializable和java.long.Comparable两个接口。
  2、使用enum定义、非抽象的枚举默认修饰符为final,因此枚举不能派生子类。
  3、枚举的构造器只能使用private访问控制符,如果省略了枚举的访问修饰符其默认为private修饰;如果加强制定访问修饰符则只能使用private。
  4、枚举的所有实例必须在枚举的第一行显示列出,否则这个枚举永远都不能生产实例,列出这些实例时系统会自动添加public static final修饰,无需程序员显式添加

  5、所有的枚举类都提供了一个values方法,该方法可以很方便的遍历所有的枚举值

以上是关于java 枚举enum定义的方法与位置。的主要内容,如果未能解决你的问题,请参考以下文章

java中enum的values()方法定义在哪里呢?

枚举 Enum

枚举 Enum

java枚举

java-枚举

C#如何将枚举类(enum)型转换成字符(string)类型