Ява - до определенного месяца каждого года - PullRequest
0 голосов
/ 25 ноября 2010

Как можно кодировать метод, который позволит добавлять число к другому номеру до определенного месяца каждого года?Например, я хотел бы иметь возможность иметь максимальную сумму депозита в год в банке, а затем в следующем году максимальная сумма депозита начинается снова.

Ответы [ 3 ]

0 голосов
/ 25 ноября 2010

Вы могли бы иметь что-то вроде

private static final double YEARLY_MAXIMUM = 100000;

void deposit(double amount) {
    if (yearLastUpdated != thisYear) {
        amountLeftForDeposit = YEARLY_MAXIMUM;
        yearLastUpdated = thisYear;
    }
    /* ... Code for deposit, checking that we're not busting this year's limit. */
}

Вы должны позаботиться о сохранении для sumLeftForDeposit и yearLastUpdated. Я думаю, что вы можете легко получить этот год через класс Date.

0 голосов
/ 25 ноября 2010

В дополнение к ответу М. Джоаниса (см. Мой комментарий):

Я предполагаю, что типом обертки является Account или подобное ... что-то, изображающее банковский счет.Тогда ваш метод депозита будет синхронизирован следующим образом:

void deposit(double amount) {
    synchronized(this /* Account class instance */) {

    }
}

Синхронизация защищает вас от проблем, связанных с одновременным доступом.Люди самые педантичные из своих денег ..

0 голосов
/ 25 ноября 2010

Исходя из вашего комментария, я думаю, что вам нужна проверка границ и флаг того, произошла ли корректировка или нет.

Итак, в вашем методе депозита вы бы проверили, действительно литекущая дата - до или после даты, когда максимальная сумма сбрасывается.Если это после, и вы еще не сделали сброс в этом году, выполните сброс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...