error: void type not allowed here
error: void type not allowed here
问。在一系列报表中,将 Nick 帐户中的所有资金(包括支票和储蓄)转移到 Carol 的支票帐户。这应该让 Nick 最后没有钱 - 即他的两个账户都有 0 钱。有几种方法可以实现这一点。一个建议是使用一个或多个中间变量来保存 Nick 帐户中的值,然后将该值存入 Carol 的支票帐户。注意:您必须通过调用 BankAccount class.Print 中定义的方法从 Nick 的帐户中获取值,使用 BankAccount class 中的适当方法输出 Nick 和 Carol 帐户的支票和储蓄信息报告.
A.
public class 银行账户{
private String name;
private int checkMoney;
private int saveMoney;
public BankAccount(String who, int checking, int saving){
name = who;
checkMoney = checking;
saveMoney = saving;
}
public String getAccountName(){
return name;
}
public int getCheckMoney(){
return checkMoney;
}
public int getSaveMoney(){
return saveMoney;
}
public void makeCheckingDeposit(int amt){
checkMoney = checkMoney + amt;
}
public void makeSavingsDeposit(int amt){
saveMoney = saveMoney + amt;
}
public void makeCheckingWithdrawal(int amt){
if(checkMoney >= amt)
checkMoney = checkMoney - amt;
}
public void makeSavingsWithdrawal(int amt){
if(saveMoney >= amt)
saveMoney = saveMoney - amt;
}
//prints name and both account balances to the console
public void printReport() {
System.out.println(name + " checking: " + checkMoney + " savings: " + saveMoney);
}
}
public class 银行业司机 {
public static void main (String [] args) {
BankAccount nicksAcct = new BankAccount("Nick", 450, 550);
BankAccount carolsAcct = new BankAccount("Carol", 600, 700);
int nicksCheckingMoney = nicksAcct.getCheckMoney();
int nicksSaveMoney = nicksAcct.getSaveMoney();
存款 = (nicksAcct.makeCheckingWithdrawal(nicksCheckingMoney) + nicksAcct.makeSavingsWithdrawal(nicksSaveMoney));
carolsAcct.makeCheckingDeposit(存款);
nicksAcct.printReport();
carolsAcct.printReport();
}
}
BankDriver 的第 7 行一直给我 'void' type not allowed here 错误。有人可以向我解释为什么这样做吗?
您不能将两个 void
方法的结果相加。例如:
private static void foo() {}
private static void bar() {}
public static void main(String... args) {
System.out.println(foo() + bar());
}
这显然毫无意义。事实上,您不能对 void
方法的结果做任何事情:您只能调用该方法。
如果要添加 makeCheckingWithdrawal
和 makeSavingsWithdrawal
方法的结果,您需要将它们 return 设为数字类型,例如:
public int makeCheckingWithdrawal(int amt) { ... }
public int makeSavingsWithdrawal(int amt) { ... }
您从这些方法中获得的价值 return 由您决定,具体取决于您的要求。
问。在一系列报表中,将 Nick 帐户中的所有资金(包括支票和储蓄)转移到 Carol 的支票帐户。这应该让 Nick 最后没有钱 - 即他的两个账户都有 0 钱。有几种方法可以实现这一点。一个建议是使用一个或多个中间变量来保存 Nick 帐户中的值,然后将该值存入 Carol 的支票帐户。注意:您必须通过调用 BankAccount class.Print 中定义的方法从 Nick 的帐户中获取值,使用 BankAccount class 中的适当方法输出 Nick 和 Carol 帐户的支票和储蓄信息报告.
A.
public class 银行账户{
private String name;
private int checkMoney;
private int saveMoney;
public BankAccount(String who, int checking, int saving){
name = who;
checkMoney = checking;
saveMoney = saving;
}
public String getAccountName(){
return name;
}
public int getCheckMoney(){
return checkMoney;
}
public int getSaveMoney(){
return saveMoney;
}
public void makeCheckingDeposit(int amt){
checkMoney = checkMoney + amt;
}
public void makeSavingsDeposit(int amt){
saveMoney = saveMoney + amt;
}
public void makeCheckingWithdrawal(int amt){
if(checkMoney >= amt)
checkMoney = checkMoney - amt;
}
public void makeSavingsWithdrawal(int amt){
if(saveMoney >= amt)
saveMoney = saveMoney - amt;
}
//prints name and both account balances to the console
public void printReport() {
System.out.println(name + " checking: " + checkMoney + " savings: " + saveMoney);
}
}
public class 银行业司机 {
public static void main (String [] args) {
BankAccount nicksAcct = new BankAccount("Nick", 450, 550);
BankAccount carolsAcct = new BankAccount("Carol", 600, 700);
int nicksCheckingMoney = nicksAcct.getCheckMoney();
int nicksSaveMoney = nicksAcct.getSaveMoney();
存款 = (nicksAcct.makeCheckingWithdrawal(nicksCheckingMoney) + nicksAcct.makeSavingsWithdrawal(nicksSaveMoney));
carolsAcct.makeCheckingDeposit(存款);
nicksAcct.printReport();
carolsAcct.printReport();
} }
BankDriver 的第 7 行一直给我 'void' type not allowed here 错误。有人可以向我解释为什么这样做吗?
您不能将两个 void
方法的结果相加。例如:
private static void foo() {}
private static void bar() {}
public static void main(String... args) {
System.out.println(foo() + bar());
}
这显然毫无意义。事实上,您不能对 void
方法的结果做任何事情:您只能调用该方法。
如果要添加 makeCheckingWithdrawal
和 makeSavingsWithdrawal
方法的结果,您需要将它们 return 设为数字类型,例如:
public int makeCheckingWithdrawal(int amt) { ... }
public int makeSavingsWithdrawal(int amt) { ... }
您从这些方法中获得的价值 return 由您决定,具体取决于您的要求。