【发布时间】:2015-09-21 06:27:44
【问题描述】:
我正在学习 java,偶然发现了以下代码,其中在方法之后执行了默认构造函数。
公共类 ChkCons { int var = getVal(); ChkCons() { System.out.println("我是默认构造函数。"); } 公共 int getVal() { System.out.println("我在方法中。"); 返回 10; } 公共静态无效主要(字符串[]参数){ ChkCons c = 新的 ChkCons(); } }输出:
我在方法。 我是默认构造函数。谁能解释一下为什么会这样?
谢谢。
【问题讨论】:
-
字段在构造函数被调用之前被初始化,因为你的字段初始化调用
getVal方法,它在构造函数之前被调用 -
好吧,那么 getVal() 也会在 STATIC BLOCK 之前执行吗?
-
构造函数?不,但
static块(来自内存)将在字段之前执行一次
标签: java constructor