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语句可以帮助您更好地掌握这一点
另外,请看这里:您的第二点是错误的。您的第二点是错误的。