首页 > 开发 > Java > 正文

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

2024-07-13 10:07:59
字体:
来源:转载
供稿:网友

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 typeIt is a account typeIt is a account typeFIXED

分析:

创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 Java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)。枚举类型符合通用模式Class Enum<E extends Enum <E>>,而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 argshave args 2have args 3no argsno args

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


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表