8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

枚举 - 静态和实例块

Parker 1月前

47 0

我了解到,在 Java 中,静态块在类初始化时执行,实例块在类的每个实例构造之前执行。我总是看到

我了解到,在 Java 中,静态块在类初始化时执行,而实例块在类的每个实例构造之前执行。我总是看到静态块在实例块之前执行。为什么情况相反呢 enums

有人可以向我解释一下示例代码的输出吗:

enum CoffeeSize {

    BIG(8), LARGE(10),HUGE(12),OVERWHELMING();
    private int ounces ;

    static {
        System.out.println("static block ");
    }
    {
        System.out.println("instance block");
    }

    private CoffeeSize(int ounces){
        this.ounces = ounces;
        System.out.println(ounces);
    }
    private CoffeeSize(){
        this.ounces = 20;
        System.out.println(ounces);
    }

    public int getOunces() {
        return ounces;
    }
} 

输出:

实例块
8
实例块
10
实例块
12
实例块
20
静态块

帖子版权声明 1、本帖标题:枚举 - 静态和实例块
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Parker在本站《object》版块原创发布, 转载请注明出处!
最新回复 (0)
  • @Pshemo : 但在定义该枚举中的常量之前,我无法定义静态块。这会导致编译错误。这是否意味着对于所有枚举,静态最终常量将首先初始化,然后再执行任何其他静态块?

返回
作者最近主题: