Java枚举类型

本文详细介绍了枚举类型的定义、使用方法及构造函数特性。解释了枚举不能定义在静态方法中,以及如何通过values()和valueOf()方法访问枚举实例。同时,展示了自定义枚举类型并实现接口的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、枚举定义

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

一般自定义的枚举类型都属于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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值