luc*_*fer 3 java constructor object
根据构造函数的定义,它们没有任何返回类型,但在创建对象时我们经常做A a = new A(); 负责创建对象a.
A a=new A();
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我理解这个问题,在创建Object时构造函数实际发生了什么.
构造函数没有返回类型,正确.但表达式 new A() 确实有结果:对新创建的对象的引用.
以下是发生的事情new A():
AA通过this引用该新对象来调用相关构造函数Oracle Java站点上的本教程中描述了此过程.
在许多方面,调用构造函数初始化器会更准确:构造发生的原因是new运算符,而不是构造函数.
当一个对象由多个构造函数处理时,构造函数实际上不进行构造的事实变得尤为明显,这是非常常见的.考虑:
List<String> m = new LinkedList<String>();
Run Code Online (Sandbox Code Playgroud)
创建一个对象(忽略列表可能需要初始化的任何字段),但是调用五个不同的构造函数来初始化那个对象,因为LinkedList<E>子java.util.AbstractSequentialList<E>类java.util.AbstractList<E>子类化java.util.AbstractCollection<E>哪个子类的子类java.lang.Object,以及每个类必须有机会初始化它创建的对象的一部分.所以按顺序:
Object()被调用来初始化Object东西AbstractCollection() 被称为初始化它的东西AbstractList()AbstractSequentialList()LinkedList()new表达式的结果一个对象,但需要五个构造函数来初始化它.:-)
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |