gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章java枚举类的构造函数实例详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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输出

?
1
2
3
4
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次.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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输出

?
1
2
3
4
5
no args
have args 2
have args 3
no args
no args

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

原文链接:http://blog.csdn.net/xidiancoder/article/details/55511015 。

最后此篇关于java枚举类的构造函数实例详解的文章就讲到这里了,如果你想了解更多关于java枚举类的构造函数实例详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com