【发布时间】:2017-05-12 03:19:39
【问题描述】:
我有一个(语法?)关于重写的 toString 方法和数组列表的 get 方法的问题。
我的第一个名为 BAccount 的类创建了一个包含姓名、余额和帐号的对象。
public class BAccount {
private static int lastAssignedNumber=1000;
String uName;
double uBalance;
private int accountNumber;
public BAccount(String name, double balance) {
uName=name;
lastAssignedNumber++;
uBalance=balance;
accountNumber=lastAssignedNumber;
}
public void setName(String inputName) {
uName=inputName;
}
public void setBalance(double inputBalance) {
uBalance=inputBalance;
}
public String getName() {
return uName;
}
public double getBalance() {
return uBalance;
}
public int getAccountNumber() {
return accountNumber;
}
public String toString() {
return ("Account Holder Name: " + this.getName() +
", Acccount Balance: " + this.getBalance() +
", Account Number: " + this.getAccountNumber());
}
我的测试程序类创建了 3 个帐户,将它们添加到 ArrayList 并使用 get 方法打印每个帐户。
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
ArrayList<BAccount> accountArray=new ArrayList<>();
for(int i=0; i<3; i++) {
System.out.print("Enter Account Holder Name: ");
String name=in.nextLine();
System.out.print("Enter Account Balance: ");
double balance=in.nextDouble();
in.nextLine();
BAccount account= new BAccount(name, balance);
accountArray.add(account);
}
System.out.println(accountArray.get(0));
System.out.println(accountArray.get(1));
System.out.println(accountArray.get(2));
}
}
测试程序类创建 3 个帐户,将它们添加到 ArrayList 并使用 get 方法打印每个帐户。
我的问题是:ArrayList 的 get 方法如何知道使用我的覆盖 toString 方法的格式进行打印?
【问题讨论】:
-
PrintStream.println(Object);调用Object.toString()- 您已覆盖。 -
... 正如 javadoc 清楚解释的那样。
标签: java arraylist methods overriding