Java枚举类型

一、枚举定义

枚举不能定义在静态方法中

一般自定义的枚举类型都属于Enum的子类型EnumType

它默认就有两个静态方法(类方法):values()和valueOf()

values()返回的是EnumType类型的实例数组

valueOf()返回的是EnumType类型的实例

二、举例:自定义Color枚举类型

Color{ WHITE, BLACK, GRAY }

Color c = Color.GRAY;

那么:

Color.valueOf("BLACK") == Color.BLACK == Color.values()[1]

因为它们返回的都是Color类型 

c.toString() == c.name() 

因为它们返回的是字符串

三、枚举的构造函数和成员变量

枚举的构造函数只能是private

枚举的成员变量则不受限制,但如果在枚举实例里面定义的方法需要访问枚举类型中的成员变量,则该成员变量至少要是protected,否则无法继承

package newpack17;

interface d{

public String getDescription();

public int getI();

}

public enum AnyEnum implements d{

Constants_A{

public String getDescription() {

return "我是枚举成员A";

}

public int getI() {

return i;

}

},

Constants_B{

public String getDescription() {

return "我是枚举成员B";

}

public int getI() {

return i;

}

},

Constants_E("枚举成员E",88){

public String getDescription() {

return this.str;

}

public int getI() {

return this.it;

}

},

Constants_C,

Constants_D{

public String getDescription() {

return "我是枚举成员D";

}

public int getI() {

return i;

}

};

private AnyEnum(String str,int i) {

this.str = str;

this.it=i;

}

private AnyEnum() {}

public String getDescription() {

return "我是枚举成员XXX";

}

public int getI() {

return 10000;

}

public int it; // protected也行,但不能是private

protected String str;

private static int i = 5; // 静态成员 public protected,private都行

public static void main(String[] args) {

for(int i = 0; iSystem.out.println(AnyEnum.values()[i]+"调用getDescription()方法为:"+AnyEnum.values()[i].getDescription());

System.out.println(AnyEnum.values()[i]+"调用getI()方法为:"+AnyEnum.values()[i].getI());

}

}

}

 为了让学习变得轻松、高效,今天给大家免费分享一套Java教学资源。帮助大家在成为Java架构师的道路上披荆斩棘。需要资料的欢迎加入学习交流群:9285,05736

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.定义 An enum type is a special data type that enables for...
    July_lt阅读 23,689评论 0 8
  • 一、 1、请用Java写一个冒泡排序方法 【参考答案】 public static void Bubble(int...
    独云阅读 1,412评论 0 6
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,288评论 0 16
  • 也有人说,分离焦虑嘛,这很正常,不用处理,过一阵子自然而然就好了。但是,儿童心理学的研究成果表明,对于分离焦虑的处...
    Two斯基阅读 528评论 0 0
  • 根本不心动却要时不时搭理一下的人 舍不得他对我的好拿去给别人 也舍不得对他好 心理变态
    艾斯陆阅读 221评论 1 1