0

我试图阅读不可变方法,但我仍然不明白。我想将 BankAccount 类的方法更改为不可变我该怎么做?

public class BankAccount
{
  private double balance;

  public BankAccount()
  {
    balance = 0;
  }

  public BankAccount(double initialBalance)
  {
    balance = initialBalance;
  }

  public void deposit(double amount)
  {
    balance = balance + amount;
  }

  public void withdraw(double amount)
  {
    balance = balance - amount;
  }

  public double getBalance()
  {
    return balance;
  }
}
4

1 回答 1

0

Java 没有 const 限定符。您不能告诉编译器“getBalance()”方法不会修改类。

类本身不是不可变的,因为它包含 mutator 方法。修改 BankAccount 可能是个好主意。但是,如果您希望实例是不可变的,您可以通过以下方式实现:

  • 删除修饰符方法
  • 将字段标记为final
  • 标记班级决赛
  • 制作接收和返回的对象的防御性副本。(在这种情况下,没有收到或返回任何对象。)
于 2013-04-29T00:04:51.933 回答