构造函数调用是否创建了一个新实例?

Les*_*ter 0 java

我学到了两件事:

  1. new-运算符创建一个新的实例,然后执行该规定connstructor初始化新的实例
  2. 构造函数call(this())创建一个新实例.

据我所知,这些陈述相互对立.

new Example()例如,然后不会创建两个实例,因为new-operator创建一个,构造函数调用this()并创建另一个实例?当然它不是,但现在究竟是什么创造了一个实例......?

class Example
{
    private boolean _b;

    public Example()
    {
        this(false);
    }

    public Beispiel(boolean b)
    {
        _b = b;
    } 
}
Run Code Online (Sandbox Code Playgroud)

Boh*_*ian 6

您的第二点不正确:调用this()不会"创建新实例".相反,它调用(通常是不同的)构造函数而不是调用的构造函数new.

调用new是创建新实例的原因.