我在获取此方法时遇到了很多麻烦:SmallBank中一个名为printBankDetail的方法打印出存储的BankAccounts的详细信息。如果只有一个BankAccount,并且有两个BankAccount,则此方法应该有效。您可以检查account2实例变量中是否有值,如下所示。我不知道如何获取我创建的基元类型的值,account1和account2然后打印该值。有什么建议吗?
public class SmallBank
{
private BankAccount account1;
private BankAccount account2;
public SmallBank(String name, int balance)
{
account1 = new BankAccount(name, balance);
account2 = null;
}
public void addSecondAccount(BankAccount newAccount)
{
account2 = newAccount;
}
public void printBlankDetails()
{
account1.getDeclaredFields();
String name = field.getName();
Int balance = field.getBalance();
System.out.println(b);
}
}
答案 0 :(得分:0)
首先,account1
和account2
不是原始类型。
此外,您可以非常简单地访问两者。
public void printBlankDetails()
{
String name1 = account1.getName();
String name2 = account2.getName();
}
P.S。你的printBlankDetails
函数有很多问题,所以我没有尝试复制它。
答案 1 :(得分:0)
您可以将BankAccount声明为:
class BankAccount {
private int balance;
private String name;
public BankAccount (String name, int balance) {
this.name = name;
this.balance = balance;
}
public String getName () {
return name;
}
public int getBalance () {
return balance;
}
}
然后你调用SmallBank类中的方法:
public void printBankDetails () {
System.out.println("Account 1:");
System.out.println("Name: " + account1.getName());
System.out.println("Balance: " + account1.getBalance());
}
答案 2 :(得分:0)
另一种设计是在printDetails()
类本身中说BankAccount
。类似的东西:
public class BankAccount {
String name;
int balance;
...
...
public String printDetails() {
return (name + "/" + balance);
}
}
然后在SmallBank::printBlankDetails()
方法中使用它,如下所示:
printBlankDetails() {
if(account1 != null) system.out.println(account1.printDetails());
if(account2 != null) system.out.println(account2.printDetails());
}
IMO,这种方法提供了更好的封装,隐藏了BankAccount
类SmallBank
的详细信息。