我如何编写一种方法,允许在每年的某个月之前将号码添加到另一个号码?例如,我希望能够在银行中每年存入最高存款金额,然后在第二年最大存款金额再次开始。
答案 0 :(得分:0)
根据您的评论,我认为您需要的是边界检查,以及调整是否已经发生的标志。
因此,在您的存款方式中,您将检查当前日期是否在最大金额重置日期之前或之后。如果它已经过了,而你今年还没有重置,请重置。
答案 1 :(得分:0)
你可以拥有像
这样的东西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. */
}
您必须处理amountLeftForDeposit和yearLastUpdated的持久性。我想你可以通过Date类轻松获得这个。
答案 2 :(得分:0)
除了M. Joanis的回答(见我的评论):
我假设,包装类型是账户或类似的......描述银行账户的东西。然后您的存款方法将按如下方式同步;
void deposit(double amount) {
synchronized(this /* Account class instance */) {
}
}
同步可以保护您免受并发访问导致的问题。人们对他们的钱最迂腐..