2013-04-29 64 views
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; 
    } 
} 

回答

0

Java沒有const限定符。你不能告訴編譯器「getBalance()」方法不會修改類。

該類本身並不是不可變的,因爲它包含了增變器方法。 BankAccount可能是可以修改的。但是,如果你想實例是不可變的,你可以通過這樣做:

  • 刪除修改方法
  • 標記最終
  • 領域打標級決賽
  • 使接收返回的對象的防守副本。 (在這種情況下,沒有收到或返回的物品。)
+0

我明白了。你能舉一個例子來說明其中的一個,所以我可以更好地理解? – user2330350 2013-04-29 00:20:23

+0

這裏有兩個:public final class BankAccount {private final final double balance; – 2013-04-29 01:37:48

相關問題