Создать метод для изменения данных в Inner Class

109
11 мая 2021, 23:00

Пытаюсь сделать метод, который добавляет деньги в Storage, и также отнимает. Тоесть по логике ведь, когда клиент кладет деньги в банк, общая сумма в банке увеличивается, а когда клиент снимает деньги - уменьшается(withdraw типа), но как это решить? Вот что я имею и пытаюсь написать методы:

  @Getter
@Setter
@ToString
public class Bank {
    private String name;
    private Storage storage;
    private List<Client> clients;
    public Bank(String name, List<Client> clients) {
        this.clients.addAll(clients);
        this.name = name;
        this.storage = new Storage(5000000000L);
    }
    public Bank(String name) {
        this.name = name;
        this.clients = new ArrayList<>();
        this.storage = new Storage(5000000000L);
    }
    public void addAllClientsToBank(Client... clients) {
        this.clients.addAll(Arrays.asList(clients));
    }
    // Не меняет Storage:(
    public Long putMoneyOfClient(Client client){
        Long clientMoney = client.getMoney();
        Long storageMoney = storage.getMoney();
        return clientMoney + storageMoney;
    }
    //Inner Class Storage of money
    @Getter
    @Setter
    static class Storage {
        private Long money;
        private Storage(Long money) {
            this.money = money;
        }
        // Dont know if its usefull
        public Long AddMoneyToStorage(Long summ) {
            Long result = getMoney();
            result += summ;
            return result;
        }
        @Override
        public String toString() {
            return "Storage: In this bank" + "(" + money + " $" +
                    ')';
        }
    }
}
@Getter
@Setter
@ToString
public class Client extends Person {
    private String telephoneNumber;
    private Long money;
    public Client(String firstName, String lastName, int age, String telephoneNumber, Long money) {
        super(firstName, lastName, age);
        this.telephoneNumber = telephoneNumber;
        this.money = money;
    }
}

решение изменил метод класса Storage

public void AddMoneyToStorage(Long summ) {
            this.money += summ;
        }

и метод класса Bank

public void putMoneyOfClient(Client client){
        Long clientMoney = client.getMoney();
        storage.AddMoneyToStorage(clientMoney);
    }
READ ALSO
Перестал собираться maven проект

Перестал собираться maven проект

Проект с использование Spring, долгое время всё компилировалось а потом резко начал отказываться билдить модуль(единственный в проекте) А всего-то...

93
Как отобразить кириллицу в названии файла

Как отобразить кириллицу в названии файла

Сохраняю файл из директории в браузере, но почему-то в место кириллические символы заменяются на символ _

85
Подставление значений из GET запроса в input. JS

Подставление значений из GET запроса в input. JS

Есть HTML форма с фильтрами, после отправки GET запроса или после обновления страницы все значения input'ов слетаютКак с помощью js/jquery вытянуть...

114
tampermonkey запуск скрипта через контекстное меню

tampermonkey запуск скрипта через контекстное меню

Как запустить скрипт нажав правую кнопку мыши и выбрав нужный скрипт? Использую этот параметр:

127