Java枚举类型

雨点打透心脏的1/2处 2022-03-19 15:42 819阅读 0赞

一、枚举定义

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

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

发表评论

表情:
评论列表 (有 0 条评论,819人围观)

还没有评论,来说两句吧...

相关阅读

    相关 类型

    枚举类型的定义和枚举变量的说明  1.  枚举的定义枚举类型定义的一般形式为:      enum 枚举名\{ 枚举值表 \};  在枚举值表中应罗列出所有可用值。

    相关 java类型

    首先,在Java中,枚举类型其实是相当于类类型,在枚举类型的定义中,我们可以加入构造函数以及各种静态的非静态的成员函数,我们也可以用一个类来模拟枚举类型。 下面是代码: