Привет! В этой статье я расскажу о создании класса Account для описания банковского счета, а также о его наследниках ⎼ CreditAccount и DepositAccount.Для начала давайте создадим класс Account. Он будет иметь три метода⁚ putAmount для пополнения счета, takeAmount для снятия средств и getAmount для отображения текущего баланса. Мы также добавим геттер для доступа к балансу счета.
java
public class Account {
private double amount;
public void putAmount(double amount) {
this.amount amount;
}
public void takeAmount(double amount) {
this.amount — amount;
}
public double getAmount {
return amount;
}
}
Отлично, теперь мы можем создать наследника класса Account ⏤ CreditAccount. Кредитный счет имеет одно отличие от обычного счета⁚ при снятии средств с него взимается комиссия в размере 1% от суммы снятия. Для этого мы переопределим метод takeAmount в классе CreditAccount.java
public class CreditAccount extends Account {
@Override
public void takeAmount(double amount) {
double commission amount * 0.01;
super.takeAmount(amount commission);
}
}
Отлично! Теперь у нас есть и кредитный счет. Но что если нам понадобится создать депозитный счет? Давайте создадим еще одного наследника ⏤ DepositAccount. У него будет одна особенность⁚ нельзя снимать средства в течение 1 месяца после пополнения. Для этого мы создадим переменную lastDepositDate, которая будет хранить дату последнего пополнения, и переопределим метод takeAmount.
java
import java.time.LocalDate;
public class DepositAccount extends Account {
private LocalDate lastDepositDate;
@Override
public void putAmount(double amount) {
super.putAmount(amount);
lastDepositDate LocalDate.now;
}
@Override
public void takeAmount(double amount) {
LocalDate currentDate LocalDate.now;
if (currentDate.getMonthValue ⎼ lastDepositDate;getMonthValue > 1) {
super.takeAmount(amount);
} else {
System;out.println(″Нельзя снимать средства в течение 1 месяца после пополнения″);
}
}
}
Отлично! Теперь у нас есть классы Account, CreditAccount и DepositAccount, каждый со своими особенностями. Мы можем использовать эти классы для управления банковскими счетами в своей программе.
Надеюсь, эта статья была полезной и помогла вам разобраться с созданием класса Account и его наследников. Удачи в вашем программировании!