BigCrabie
2012-10-24 11:14
浏览 358
已采纳

在java中如何使用enum类型?

想知道的是能不能像C语言里面一样给枚举的成员赋值?

例如:

public enum Name
{
NAME1 = 1,
NAME2 = 2
}

thanks in advance!

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • iteye_5246 2012-10-24 11:33
    已采纳

    可以赋值
    例如:
    public enum Temp {
    demojava1(-459), demojava2(32),demojava3(212), demojava4(451);
    private final int value;
    public int getValue() {
    return value;
    }
    //构造器默认也只能是private, 从而保证构造函数只能在内部使用
    Temp(int value) {
    this.value = value;
    }
    }
    有一点需要知道的是:
    /*通过括号赋值,而且必须有带参构造器和一属性跟方法,否则编译出错
    * 赋值必须是都赋值或都不赋值,不能一部分赋值一部分不赋值
    * 如果不赋值则不能写构造器,赋值编译也出错*/

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 我也叫蒋涛 2012-10-24 11:31

    [code="java"]
    package com.lucene;

    public enum Demo {
    FRANK("The given name of me"),
    LIU("The family name of me");
    private String context;
    private String getContext(){
    return this.context;
    }
    private Demo(String context){
    this.context = context;
    }
    public static void main(String[] args){
    for(Demo name :Demo.values()){
    System.out.println(name+" : "+name.getContext());
    }
    System.out.println(Demo.FRANK.getDeclaringClass());
    }
    }
    [/code]
    希望能帮到你,

    评论
    解决 无用
    打赏 举报
  • qq415241704 2012-10-24 11:34

    你NAME1,NAME2本来在ENUM里面本来就是静态常量了,是不能被赋值的。

    评论
    解决 无用
    打赏 举报
  • blackproof 2012-10-24 12:48

    亲,这个帖子是一个enum的例子,java的enum是很强大滴

    http://blackproof.iteye.com/admin/blogs/1596911

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题