Дополнен 10 месяцев назад
public class Account {
private int accountNumber;
private double balance;
private String owner;
public Account(int accountNumber, double balance, String owner) {
this.accountNumber = accountNumber;
this.balance = balance;
this.owner = owner;
}
public void deposit(double amount) {
balance += amount;
}
public void withdraw(double amount) {
balance -= amount;
}
public double getBalance() {
return balance;
}
}
Дополнен 10 месяцев назад
public class SavingAccount extends Account {
private double annualInterestRate;
public SavingAccount(int accountNumber, double balance, String owner, double annualInterestRate) {
super(accountNumber, balance, owner);
this.annualInterestRate = annualInterestRate;
}
@Override
public void withdraw(double amount) {
if (getBalance() - amount >= 0) {
super.withdraw(amount);
} else {
System.out.println("Недостаточно средств на счете");
}
}
public void addInterest() {
double interest = getBalance() * (annualInterestRate / 100);
deposit(interest);
System.out.println("Начислены проценты: " + interest);
}
}
Дополнен 10 месяцев назад
public class CreditCardAccount extends Account {
private double creditLimit;
public CreditCardAccount(int accountNumber, double balance, String owner, double creditLimit) {
super(accountNumber, balance, owner);
this.creditLimit = creditLimit;
}
@Override
public void withdraw(double amount) {
if (amount <= getBalance() + creditLimit) {
super.withdraw(amount);
} else {
System.out.println("Превышение доступного кредитного лимита");
}
}
}
public class Main {
public static void main(String[] args) {
SavingAccount savingAccount = new SavingAccount(1234, 5000, "Иванов", 0.5);
CreditCardAccount creditCardAccount = new CreditCardAccount(5678, -2000, "Петров", 3000);
savingAccount.withdraw(1000);
savingAccount.addInterest();
System.out.println("Баланс сберегательного счета: " + savingAccount.getBalance());
creditCardAccount.withdraw(2500);
System.out.println("Баланс кредитной карты: " + creditCardAccount.getBalance());
}
}
Требования:
Создать родительский класс Account со следующими атрибутами: номер счета, баланс ,владелец счета
Реализовать методы для каждого родительского класса для: пополнения счета на указанную сумму, снятие указанной суммы со счета, запроса баланса
Создать дочерние классы с различными типами счетов: Сберегательный счет, Счет кредитной карты
Реализовать следующее специфичное поведение для каждого типа счета. Сберегательный счет:
- Нельзя снимать деньги со счета, если баланс меньше или равен 0.
- За каждую успешную транзакцию должны начисляться проценты (например, 0.5% в год).
Счет кредитной карты:
- Максимальный баланс на счете составляет 100% от кредитного лимита.
- Можно использовать деньги с кредитного лимита, но сумма не должна превышать доступный лимит.
Создать несколько объектов каждого типа счетов и продемонстрировать работу методов транзакций для каждого счета.