我已經寫下了一些信用卡類的代碼,粘貼在下面。我有一個構造函數中說變量,和我的一些方法致力於這些變量的格式化成字符串,使得最終輸出將是沿着Integer.toString(參數)或toString(參數)
號線的東西:1234 5678 9012 3456
到期日期:10/14
帳戶持有人:鮑勃·瓊斯
是有效的:真
(將無法正確格式化 - 我不確定如何做到這一點,將不勝感激的人可以編輯我:))
我的問題是,在該行
String shortYear = Integer.toString(expiryYear).substring(2,4);
爲什麼不會以下工作:
toString(argument).substring(2,4)
我會想到它纏繞工作過(expiryYear基本上聲明爲int類型的實例變量)。我已經諮詢了我的書(官方Java教程也在網上找到),並且似乎無法找到任何東西。我甚至都不知道Integer.toString,一個朋友在嘗試使用toString()之後告訴我的,所以如果有人能告訴我在哪裏可以找到這些類型的方法,我會更加感激不要以爲他們是在我的書)
public class CreditCard {
private int expiryMonth;
private int expiryYear;
private String firstName;
private String lastName;
private String ccNumber;
public CreditCard(int expiryMonth, int expiryYear, String firstName, String lastName, String ccNumber) {
this.expiryMonth = expiryMonth;
this.expiryYear = expiryYear;
this.firstName = firstName;
this.lastName = lastName;
this.ccNumber = ccNumber;
}
public String formatExpiryDate() {
String shortYear = Integer.toString(expiryYear).substring(2, 4);
String expiryDate = expiryMonth + "/" + shortYear;
return expiryDate;
}
public static void main(String[] args) {
CreditCard cc1 = new CreditCard(10, 2014, "Bob", "Jones", "123456789");
System.out.print(cc1.formatExpiryDate());
}
}
因爲你沒有一個'toString'函數,它的參數。 – SLaks
如果你想使用它,你需要定義這個函數toString,它不像過程語言(例如C),它是OOP –
不是toString一個公共方法,它是對象類的一部分(它是每個類的超類實現類),所以我應該能夠訪問它?還是我在這裏想錯了? – user3186023