gpt4 book ai didi

java - 构造函数没有任何返回类型,但是对象是如何创建的呢?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:08:13 31 4
gpt4 key购买 nike

根据构造函数的定义,它们没有任何返回类型,但是在创建对象时我们经常这样做 A a = new A();负责创建对象a。

A a=new A();

任何人都可以帮助我理解这个问题,在创建对象时构造函数实际发生了什么。

最佳答案

构造函数没有返回类型,正确。但是表达式 new A() 确实有结果:对新创建对象的引用。

这是 new A() 发生的情况:

  1. 一个对象被创建
  2. 它的类型是A
  3. 相关A使用 this 调用构造函数指的是那个新对象
  4. 一旦初始化完成,表达式就完成了
  5. 表达式的结果是对新对象的引用

此过程在 this tutorial 中有所描述在 Oracle Java 网站上。

在很多方面,调用构造函数初始化器会更准确:构造的发生是因为new运算符,而不是构造函数。

当一个对象被多个 构造函数处理时,构造函数实际上并不进行构造的事实变得特别清楚,这是很常见的。考虑:

List<String> m = new LinkedList<String>();

一个对象 已创建(忽略列表可能需要初始化的任何字段),但会调用五个不同的构造函数 来初始化该对象,因为 LinkedList<E>子类 java.util.AbstractSequentialList<E>哪些子类java.util.AbstractList<E>哪些子类java.util.AbstractCollection<E>哪些子类java.lang.Object ,并且这些类中的每一个都必须有机会初始化其创建的对象的一部分。所以顺序是:

一个对象,但需要五个构造函数来初始化它。 :-)

关于java - 构造函数没有任何返回类型,但是对象是如何创建的呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32165876/

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