java枚举类的构造函数实例详解
2017-05-23 09:33
721 查看
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
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:
相关文章推荐
- C++ 类的构造函数详解及实例
- C#中构造函数和析构函数用法实例详解
- Python 含参构造函数实例详解
- java static块和构造函数的实例详解
- java语言基础关于private修饰构造函数,实例对象详解-作者:逝秋
- Java 重载、重写、构造函数的实例详解
- C++ 中构造函数的实例详解
- C++详解默认参数的构造函数及简单实例代码
- C++类继承之子类调用父类的构造函数的实例详解
- JavaScript原型对象、构造函数和实例对象功能与用法详解
- java中List的用法和实例详解
- java 中动态代理详解及实例
- 一个应用实例详解卡尔曼滤波及其算法实现
- JS Ajax 请求实例详解(基础入门篇,以.NET MVC 为例)
- 微信小程序 Toast自定义实例详解
- C++调用Python基础功能实例详解
- 关于async和await的一些误区实例详解
- thinkphp中的多表关联查询的实例详解
- 微信小程序 swiper组件详解及实例代码
- Java移位运算符详解实例——左移位运算符>>、带符号的右移位运算符>>