欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-15 09:04:16
java枚举类的构造函数实例详解 首先,给出一个例题如下: enum accounttype { saving, fixed, current;...

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 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 args
have args 2
have args 3
no args
no args

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