有人可以看一下我试图取消和关闭帐户的代码部分吗?这就是我想要实现的目标:
“2。向您的Account类添加一个方法void close()。此方法应通过将”CLOSED“附加到帐户名并将余额设置为0来关闭当前帐户。(帐号应保持不变。)还减少了帐户总数。“
当我尝试编译它时,程序给了我一个关于预期标识符的错误。我错过了什么?
//*******************************************************/
// Account.java
//
// A bank account class with methods to deposit to, withdraw from,
// change the name on, and get a String representation
// of the account.
//*******************************************************/
public class Account
{
private double balance;
private String name;
private long acctNum;
//----------------------------------------------
//Constructor -- initializes balance, owner, and account number
//----------------------------------------------
public Account(double initBal, String owner, long number)
{
balance = initBal;
name = owner;
acctNum = number;
}
//----------------------------------------------
// Checks to see if balance is sufficient for withdrawal.
// If so, decrements balance by amount; if not, prints message.
//----------------------------------------------
public void withdraw(double amount)
{
if (balance >= amount)
balance -= amount;
else
System.out.println("Insufficient funds");
}
//----------------
//Track how many accounts
//----------------
private static int numAccounts=0;
{
numAccounts++;
}
public static int getNumAccounts()
{
return numAccounts;
}
//----------------------------------------------
// Adds deposit amount to balance.
//----------------------------------------------
public void deposit(double amount)
{
balance += amount;
}
//----------------------------------------------
// Returns balance.
//----------------------------------------------
public double getBalance()
{
return balance;
}
//----------------------------------------------
// Returns account number.
//----------------------------------------------
public long getAcctNumber()
{
return acctNum;
}
//----------------
//Void and close the accounts
//----------------
public void close(Account)
{
balance = 0;
name = "CLOSE";
acctNum = number;
numAccounts--;
return Account;
}
//----------------------------------------------
// Returns a string containing the name, account number, and balance.
//----------------------------------------------
public String toString()
{
return "Name: " + name +
"\nAccount Number: " + acctNum +
"\nBalance: " + balance;
}
}
答案 0 :(得分:6)
public void close(Account)
需要变量名称。声明说它需要一个Account
参数,但您还需要为参数指定一个名称,例如public void close(Account account)
。
请注意,我认为这没有多大意义。给定一个帐户对象,您应该可以关闭它,所以也许您应该重新考虑该参数是否有意义。
答案 1 :(得分:3)
几乎没有问题:
public void close(Account) << why do you have Account as a parameter (half parameter)?
{
balance = 0;
name = "CLOSE"; << This is assignment, not addition
acctNum = number; << where number came from
acctNum--;
return Account; << this is a void method, why do you return something?
}
看起来应该是这样的:
public void close()
{
balance = 0;
name += "CLOSE"; << adding "close" to current account name
acctNum--;
}
另一方面,acctNum是帐户的总数,它不应该与特定对象相关,因此应该声明为静态。
修改强>
有关帐户计数和帐号的说明:
对于每个帐户,都应该有一个帐号,假设第一个帐户有account number = 1
,第二个帐户有account number = 2
等,所以我们会调用此变量accountNumber
和将其声明为私有变量:
private int accountNumber;
您还想跟踪活动帐户的数量,对吧?因此,您创建另一个不受特定帐户限制但与所有帐户相关的变量,并将其命名为accountCount
,您应该将其声明为静态变量:
private static int accountCount = 0;
当您关闭帐户时,您希望减少帐号并保留计数,因此您的方法应如下所示:
public void close()
{
balance = 0;
name += "CLOSE";
accountCount--; << we decrease the account count, not the specific account number
}
答案 2 :(得分:2)
最好去
public void close() { ... }
你将在帐户类的实例(如myAccount.close())上调用它,因此它将自行处理。添加你不需要的东西几乎总是一个坏主意:)
答案 3 :(得分:1)
您没有指定参数名称。
将其更改为
public void close(Account acct){
//...
}
答案 4 :(得分:1)
public void close() {
...
}
我认为他们期望你添加一个带有该签名的方法。 此外,它表示将“CLOSED”附加到名称而不是将“设置”名称为“CLOSED”。 我认为您不需要使用acctNum变量修改任何内容。
应该有足够的提示来完成这个。
答案 5 :(得分:0)
public void close(Account)
应该有一个变量名。像这样:
public void close(Account account)
{
balance = 0;
name = "CLOSE";
acctNum = number;
acctNum--;
}
答案 6 :(得分:0)
这一行必须在一个方法内,而不是你的类声明的一部分:
{
numAccounts++;
}
尝试制作:
public void incrementAccountNumber() {
numAccounts++;
}
答案 7 :(得分:0)
您需要为close()
方法指定参数名称:
public void close(Account account) { ... }
答案 8 :(得分:0)
除了其他答案之外,您还有一个未知变量number
:
acctNum = number;