我試圖更好地理解 OOP。我想知道 Java 如何知道要使用哪個建構式。例如我下面有一個類和 2 個建構式。一個采用 DBC 值,另一個采用一些字串。它是知道你通過它還是我理解整個事情是錯誤的?
public class EpsMockEmailInfo {
private String email;
private String emailType;
private String emailDate;
private String status;
public EpsMockEmailInfo (String email,String emailType,String emailDate,String status) {
this.email = email;
this.emailType = emailType;
this.emailDate = emailDate;
this.status = status;
}
public EpsMockEmailInfo (Dbc dbc){
email = dbc.getString(1);
emailType = dbc.getString(2);
emailDate = dbc.getString(3);
status = dbc.getString(4);
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getEmailType() {
return emailType;
}
public void setEmailType(String emailType) {
this.emailType = emailType;
}
public String getEmailDate() {
return emailDate;
}
public void setEmailDate(String emailDate) {
this.emailDate = emailDate;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
uj5u.com熱心網友回復:
匹配方法簽名
通過將其宣告引數的數量和型別與呼叫引數的數量和型別進行匹配來選擇構造函式。
如果傳遞四個String物件,則public EpsMockEmailInfo (String email,String emailType,String emailDate,String status) { … }執行。
如果傳遞單個Dbc物件,則public EpsMockEmailInfo (Dbc dbc) { … }執行。
形式上,方法名稱與其引數的數量和型別的組合稱為方法簽名。方法簽名在應用程式中是唯一的,這意味著您不能撰寫具有相同完全限定名稱和相同數量和型別的引數的兩個方法;編譯器不允許。所以JVM總是知道呼叫哪個方法。
uj5u.com熱心網友回復:
在 Java 中,建構式或方法的真實名稱,即用于識別和查找的識別符號,包括引數的數量和型別。這稱為方法或建構式簽名。
幾乎您可以想象的方法名稱的每一種用法實際上都是基于簽名的。多載,即我們對多個不同的方法或建構式使用相同的名稱所稱的,只存在于我們的腦海中。在 Java 中,foo(int)和foo(boolean)彼此不同,就像它們來自bar(int).
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/363999.html
