gpt4 book ai didi

java - 为什么 getX() 方法首先执行而不是构造函数

转载 作者:行者123 更新时间:2023-12-02 11:01:35 25 4
gpt4 key购买 nike

在下面的代码中,为什么首先执行 getX() 方法而不是构造函数:

public class ConsructorQuestion {

int x = getX(); // same this.getX();
public int getX() {
System.out.println(x + " via method ");
return 10;
}

public ConsructorQuestion() {
System.out.println(x+" via constructor");
}

public static void main(String[] args) {
ConsructorQuestion t = new ConsructorQuestion();
}

}

最佳答案

实例变量在构造函数体执行之前(但在父类(super class)构造函数体执行之后)初始化。

因此,在您的示例中,int x = getX(); 在构造函数主体之前执行。

这相当于将x的初始化移动到构造函数的第一行:

int x;
public int getX(){
System.out.println(x+" via method ");
return 10;
}

public ConsructorQuestion() {
x = getX();
System.out.println(x+" via constructor");
}

关于java - 为什么 getX() 方法首先执行而不是构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42945209/

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