gpt4 book ai didi

java - java 幕后对象创建(java 对象实例化)

转载 作者:行者123 更新时间:2023-12-01 22:15:23 36 4
gpt4 key购买 nike

我知道对象创建分为三个部分:

  1. 声明
  2. 实例化
  3. 初始化
<小时/>
classA{}
classB extends classA{}
classA obj = new classB(1,1);
<小时/>

实例化

它必须使用 new 运算符创建一个对象并且这个对象必须具有与classB相关的所有字段(初始化为默认值这一步是否会调用默认构造函数?)这是实例化这是否意味着这一步是使用java的默认构造函数进行初始化?

初始化

然后这个对象会沿着层次结构向下传递,以调用各种构造函数来进行初始化(这属于初始化)最终的 obj 由需要初始化的 'classB(1,1)` 构造函数创建

但是实例化步骤中提到的对象最初是如何使用所有可用字段创建的?

如果我说的有不对的地方请指出

最佳答案

如果类没有构造函数,则隐式定义默认构造函数。构造函数有方法名称 <init>在堆栈跟踪中。

构造函数调用执行以下操作:

  1. 对象已创建,所有字段均已清空:0、0.0、null、...
  2. 调用 super 构造函数,如果代码中不存在,则可能是隐式的。
  3. 所有已初始化字段 ( A a = ...; ) 均通过分配进行初始化。
  4. 执行构造函数的其余部分。

关于java - java 幕后对象创建(java 对象实例化),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31177442/

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