繁体   English   中英

我如何将此类更改为不可变方法?

[英]How ca I change this class to make immutable methods?

我尝试阅读不可变方法,但我仍然不明白。 我想将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没有const限定词。 您不能告诉编译器“ getBalance()”方法不会修改该类。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM