【问题标题】:How ca I change this class to make immutable methods?如何更改此类以创建不可变方法?
【发布时间】:2013-04-29 00:00:33
【问题描述】:

我试图阅读不可变方法,但我仍然不明白。 我想将 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;
  }
}

【问题讨论】:

    标签: java immutability account bank


    【解决方案1】:

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

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

    • 删除修饰符方法
    • 将字段标记为final
    • 标记类final
    • 制作接收和返回的对象的防御性副本。 (在这种情况下,没有收到或返回任何对象。)

    【讨论】:

    • 我明白了。你能举个例子让我更好地理解吗?
    • 这里有两个:public final class BankAccount { private final double balance;
    猜你喜欢
    • 2010-09-26
    • 2017-05-05
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 2011-07-19
    相关资源
    最近更新 更多