java枚举类的构造函数
2017-02-17 15:37
162 查看
首先,给出一个例题如下:
分析:
创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)。枚举类型符合通用模式
简单来说就是枚举类型中的枚举值都会对应调用一次构造函数,本题中三个枚举值,这里还要特别强调一下,枚举中的构造函数是私有类,也就是无法再外面创建enum
枚举值默认static(静态类常量) ,会为每个类常量增加一个构造函数。AccountType.FIXED使用的是枚举值,没有创建。所以一共就3次。
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
相关文章推荐
- java学习笔记(三)----成员权限,构造函数,this用法
- JAVA小错积累(构造函数)
- 【转】Java继承时构造函数的调用
- Java 构造函数
- Java语言深入-构造函数的继承问题-Java基础-Java-编程开发
- 使用java反射操作类的构造函数,成员变量和成员方法
- java与C#构造函数
- JAVA C# 构造函数调互相调用(构造函数调用另一个构造函数)的不同
- java 继承类 变量、静态变量、构造函数执行顺序
- Java类继承中的构造函数问题
- JAVA学习,this(),super()调用构造函数研究
- 温习Java笔记(5):构造函数、继承和多态
- Java与C++在构造函数中调用虚函数时的区别
- 构造函数调用另一个构造函数(CPP&JAVA的对比)
- java 构造函数的执行过程
- Java编程思想笔记_以构造函数确保初始化的进行
- java中子类继承父类时是否继承构造函数呢?
- Java继承时构造函数的调用
- Java中的构造函数介绍
- java 构造函数深入学习