Java - 在默认构造函数之前执行的方法

标签 java constructor

我正在学习 java,偶然发现了以下代码,其中在方法之后执行了默认构造函数。

public class ChkCons {

    int var = getVal();

    ChkCons() {
        System.out.println("I'm Default Constructor.");
    }

    public int getVal() {
        System.out.println("I'm in Method.");
        return 10;
    }

    public static void main(String[] args) {

        ChkCons c = new ChkCons();

    }

}

输出:

I'm in Method.
I'm Default Constructor.

谁能解释一下为什么会这样?

谢谢。

最佳答案

int var = getVal(); 等实例变量初始化表达式在执行父类(super class)构造函数之后但在执行当前类构造函数的主体之前求值。

因此 getVal()ChkCons 构造函数的主体执行之前被调用。

关于Java - 在默认构造函数之前执行的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32688650/

相关文章:

JavaFX 与 Java Swing 在行业中的使用

java - 从随机的三元组字母表中猜一个词

c# - 使用 "constructor rights"从构造函数调用方法

c++ - 为什么在多重继承期间我不能 dynamic_cast "sideways"?

c++ - 右值引用和构造函数参数

java - 如何使用java下载网页并保存图像文件

java - ROW_NUMBER() 没有正确排序记录

java - AlarmManager 在应用程序关闭时不起作用

java - 在单独的方法中初始化 Java 对象 : why this won't work

javascript - 难以手动走原型(prototype)链