gpt4 book ai didi

java - 哪个 new 先执行——在构造函数中还是在构造函数外?

转载 作者:搜寻专家 更新时间:2023-11-01 04:03:35 27 4
gpt4 key购买 nike

如果我定义如下类:

public class myClass {    private x = new anotherClass();    private y;    public myClass() {        y = new anotherClass();    } }

哪个变量会更早获得实例? x 还是 y?

并且,不建议在构造函数之外分配变量吗?

最佳答案

执行顺序是:

  • 父类(super class)构造函数(或同一个类的链接构造函数)
  • 实例变量初始值设定项(在您的代码中分配给 x 的表达式)
  • 构造函数体(代码中赋值给y的语句)

Section 12.5 of the Java Language Specification包含详细信息。

是否在构造函数中分配变量取决于你 - 我非常喜欢一个经验法则,如果初始值不依赖于任何构造函数参数,并且总是 所有构造函数都一样,使用变量初始值设定项。否则,在构造函数中分配它。

关于java - 哪个 new 先执行——在构造函数中还是在构造函数外?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5692144/

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