2013-04-29 3 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 не имеет определителя констант. Вы не можете сообщить компилятору, что метод getBalance() не модифицирует класс.

Сам класс не является неизменным, поскольку содержит методы мутатора. И, вероятно, это хорошая идея для того, чтобы BankAccount был модифицируемым. Но если вы хотите быть экземплярам неизменны, вы могли бы сделать так:

  • Удаление методов модификаторов
  • Разметка поля конечных
  • Маркировка класса окончательного
  • Изготовление оборонительных копии объектов получили и вернулся , (В этом случае нет объектов, которые были получены или возвращены.)
+0

Я вижу. Можете ли вы привести пример для одного из них, чтобы я мог понять немного лучше? – user2330350

+0

Вот два: публичный конечный класс BankAccount { закрытый окончательный двойной баланс; –

Смежные вопросы