enum 的用法

Enum定义

Enum是enumeration(列举)的简写形式,包含在 java.lang包中.熟悉C, C++, C#, 或 Pascal人应该对列举有所了解,先看个例子:
1
public  enum  Season{winter,spring,summer,fall};

接口方法实现列举

一个enum是定义一组值的对象,它可以包括零个或多个值成员.它是属于enum类型的,一个enum对象中不可有两个或多个相同的属性或值.在次之前的java程序员一般是 用接口的方法实现列举的,如 :
1
2
3
4
public  interface Season{
static  winter = 0;
static  spring = 1; //etc..
}

Enum实例

引入了enum的java的列举的编写方便了许多,只须定义一个enum型的对象.enum对象的值都会自动获得一个数字值,从0开始,依次递增.看一个比较简单的enum实现的例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
EnumDemo.java
package  net.javagarage.enums;
/*
Wecanloopoverthevaluesweputintotheenum
usingthevalues()method.
NotethattheenumSeasonsiscompiledintoa
separateunit,calledEnumDemo$Seasons.class
*/
public  class  EnumDemo{
/*declaretheenumandaddvaluestoit.notethat,likein#,wedon'tusea‘;’to
endthisstatementandweusecommastoseparatethevalues*/
private  enum  Seasons{
winter,spring,summer,fall
}
//listthevalues
public  static  void  main(String[]args){
for (Seasonss:Seasons.values()){
System.out.println(s);
}
}
}
运行上述代码你会得到 以下结果:
winter
spring
summer
fall

Enum的属性调用:

下面的代码展示了调用enum对象的方法,这也是它通常的用法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
packagenet.javagarage.enums;
/*
File:EnumSwitch.java
Purpose:showhowtoswitchagainstthevaluesinanenum.
*/
publicclassEnumSwitch{
privateenumColor{red,blue,green}
//listthevalues
publicstaticvoidmain(String[]args){
//refertothequalifiedvalue
doIt(Color.red);
}
/*notethatyouswitchagainsttheUNQUALIFIEDname.thatis,"caseColor.red:"isa
compilererror*/
privatestaticvoiddoIt(Colorc){
switch (c){
casered:
System.out.println( "valueis" +Color.red);
break ;
casegreen:
System.out.println( "valueis" +Color.green);
break ;
caseblue:
System.out.println( "valueis:" +Color.blue);
break ;
default :
System.out.println( "default" );
}
}
}
为Enums添加属性和方法
enums也可以象一般的类一样添加方法和属性,你可以为它添加 静态和非静态的属性或方法,这一切都象你在一般的类中做的那样.
就是这么的简单.但是有一点是需要注意的,那就是enums的值列表必须紧跟在enum声明,不然编译时将会出错.
Enums 构造函数 :
和类一样enums也可以有自己的 构造函数
尽管enums有这么多的属性,但并不是用的越多越好,如果那样还不如直接用类来的直接.enums的优势在定义int最终 变量仅当这些值有一定特殊含义时.但是如果你需要的是一个类,就定义一个类,而不是enum.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值