public class C { int i; C(){
}
C(int i){
this.i=i;
}
C m (){
return this;
}
public static void main(String[] args) {
new C().m();
new C(1).m();
}}
类C中有两个构造器,一个有参,一个无参,一个方法m,请问m被调用时,return this语句返回的是哪一个构造器构造的对象?
(new C().m();和new C(1).m();分别返回的是c()还是c(i)构造的对象),为什么?
谢谢
}
C(int i){
this.i=i;
}
C m (){
return this;
}
public static void main(String[] args) {
new C().m();
new C(1).m();
}}
类C中有两个构造器,一个有参,一个无参,一个方法m,请问m被调用时,return this语句返回的是哪一个构造器构造的对象?
(new C().m();和new C(1).m();分别返回的是c()还是c(i)构造的对象),为什么?
谢谢
而new C(1).m()则返回的是带了参数的构造对象
你在C里面加一个方法来打印i的值,就很清楚了。
new C(1).m()返回的是c(i)对象
new一个对象是会寻找相匹配的构造器
package D13;public class c {
int i;
c() {
System.out.println("default init");
}
c(int i) {
this.i = i;
System.out.println("Number init");
}
c m() {
return this;
}
public static void main(String[] args) {
new c().m();
new c(1).m();
}
}结果是:
default init
Number init
第二个是通过调用C(int i)创造的对象
很清楚吧