java枚举类的构造函数实例详解

网友投稿 438 2023-05-13


java枚举类的构造函数实例详解

java枚举类的构造函数实例详解

首先,给出一个例题如下:

enum AccountType

{

SAVING, FIXED, CURRENT;

private AccountType()

{

System.out.println(“It is a account type”);

}

}

class EnumOne

{

public static void main(String[]args)

{

System.out.println(AccountType.FIXED);

}

}

Terminal输出:

It is a account type

It is a account type

It is a account type

FIXED

分析:

创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 Java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)。枚举类型符合通用模式Class Enum>,而E表示枚举类型的名称的每一个值都将映射到 protected Enum(String name, int ordinal) 构造函数中

简单来说就是枚举类型中的枚举值都会对应调用一次构造函数,本题中三个枚举值,这里还要特别强调一下,枚举中的构造函数是私有类,也就是无法再外面创建enum

枚举值默认static(静态类常量) ,会为每个类常量增加一个构造函数。AccountType.FIXED使用的是枚举值,没有创建。所以一共就3次。

public class Test {

public static void main(String[] args) {

weekday mon = weekday.mon;

weekday tue = weekday.tue;

weekday thus = weekday.thus;

weekday fri = weekday.fri;

}

public enum weekday {

mon(), tue(2), wes(3), thus(), fri;

private weekday() {

System.out.println("no args");

}

private weekday(int i) {

System.out.println("have args " + i);

};

}

}

Terminal输出:

no args

have args 2

have args 3

no args

no args

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:bootstrap手风琴折叠示例代码分享
下一篇:interrupt()和线程终止方式_动力节点Java学院整理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~