Java 构造函数调用是否创建新实例?

Java 构造函数调用是否创建新实例?,java,Java,我学到了两件事: new-操作符创建一个新实例,然后执行声明的connstuctor来初始化该新实例 构造函数调用(this())将创建一个新实例 就我的理解而言,这些陈述互相反对 例如,newexample()不会创建两个实例,因为new-操作符创建一个实例,而构造函数调用this()并创建另一个实例?当然不会,但现在究竟是什么创建了一个实例 class Example { private boolean _b; public Example() {

我学到了两件事:

  • new
    -操作符创建一个新实例,然后执行声明的connstuctor来初始化该新实例
  • 构造函数调用(
    this()
    )将创建一个新实例
  • 就我的理解而言,这些陈述互相反对

    例如,
    newexample()
    不会创建两个实例,因为
    new
    -操作符创建一个实例,而构造函数调用
    this()
    并创建另一个实例?当然不会,但现在究竟是什么创建了一个实例

    class Example
    {
        private boolean _b;
    
        public Example()
        {
            this(false);
        }
    
        public Beispiel(boolean b)
        {
            _b = b;
        } 
    }
    

    您可以在构造函数中使用
    this
    调用具有不同参数数的同一类的构造函数,例如:

    class Example{
        private boolean b;
        public Example(){
            this(false) // you now call public Example(boolean b) to save code istead of    this.b=false
        }
        public Example(boolean b){
            this.b = b;
        }
    }
    

    您可以在构造函数中使用
    this
    调用具有不同参数数的同一类的构造函数,例如:

    class Example{
        private boolean b;
        public Example(){
            this(false) // you now call public Example(boolean b) to save code istead of    this.b=false
        }
        public Example(boolean b){
            this.b = b;
        }
    }
    

    第二点不正确:调用
    this()
    不会“创建新实例”。相反,它调用的构造函数(通常不同于
    new
    调用的构造函数)


    调用
    new
    创建新实例。

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

    调用
    new
    创建新实例。

    通过调用
    this(false)
    不会创建新实例。您只需在构造函数中调用一个构造函数(与您正在传递的参数数量相匹配的构造函数),我现在想不出任何有效的实际用途,但它是完全有效的。请注意,要链接这样的构造函数,您必须在“父”构造函数的第一行调用一个新的构造函数。 底线;创建一个对象。 也许为每个不同的构造函数调用添加print语句可以帮助您更好地掌握这一点

    另外,看看这里:

    通过调用
    this(false)
    您不会创建新实例。您只需在构造函数中调用一个构造函数(与您正在传递的参数数量相匹配的构造函数),我现在想不出任何有效的实际用途,但它是完全有效的。请注意,要链接这样的构造函数,您必须在“父”构造函数的第一行调用一个新的构造函数。 底线;创建一个对象。 也许为每个不同的构造函数调用添加print语句可以帮助您更好地掌握这一点


    另外,请看这里:

    您的第二点是错误的。您的第二点是错误的。