Rup*_*ngh 3 java oop constructor object
package rups;
public class vipcustomer{
private String name;
private int creditlimit;
private String emailid;
public vipcustomer(){
this("Rupali", 5000, "rupalisingh@gmial.com");
System.out.println("Constructer with default values");
}
public vipcustomer(int creditlimit, String emailid) {
this("Rups", creditlimit, emailid);
this.creditlimit = creditlimit;
this.emailid = emailid;
System.out.println("Constructor with 1 default values");
}
public vipcustomer(String name, int creditlimit, String emailid) {
this.name = name;
this.creditlimit = creditlimit;
this.emailid = emailid;
System.out.println("Constructer with no default values");
}
public String getName() {
return name;
}
public int getCreditlimit() {
return creditlimit;
}
public String getEmailid() {
return emailid;
}
}
public class Main {
public static void main(String args[]){
new vipcustomer();
new vipcustomer(5000, "sdhoahfsdh");
new vipcustomer("Rups", 7000, "dfksjdfsjdfa");
}
}
Run Code Online (Sandbox Code Playgroud)
产量
Constructer with no default values
Constructor with 1 default values
Constructer with no default values
Run Code Online (Sandbox Code Playgroud)
这里第一个构造函数应该将输出作为"具有默认值的构造函数",但事实并非如此.我做错了什么?请帮忙.
在构造函数中,您可以使用this关键字在同一个类中调用另一个构造函数.这样做称为显式构造函数调用.
让我们分析一下你的代码,有三个构造函数:
public vipcustomer()//------------------------------------------------(C1)
public vipcustomer(int creditlimit, String emailid)//-----------------(C2)
public vipcustomer(String name, int creditlimit, String emailid)//----(C3)
Run Code Online (Sandbox Code Playgroud)
所以当你使用时:
new vipcustomer();
Run Code Online (Sandbox Code Playgroud)
它调用此构造函数:
public vipcustomer() {
this("Rupali", 5000, "rupalisingh@gmial.com");
System.out.println("Constructer with default values");
}
Run Code Online (Sandbox Code Playgroud)
但请注意this("Rupali", 5000, "rupalisingh@gmial.com");它在打印完成C3时调用C3:
Constructor with no default values
Run Code Online (Sandbox Code Playgroud)
为此,第一个输出是:
Constructor with no default values
Run Code Online (Sandbox Code Playgroud)
然后
Constructor with default values
Run Code Online (Sandbox Code Playgroud)
其他构造函数也是如此.
该this()函数根据参数列表调用重载的构造函数.
看看这个 :
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |