/
digit
/
java-oop-polymorphism-company
Обзор
Документация
Войти
/
digit
/
java-oop-polymorphism-company
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Company.java
60 строк
2 KB
digit
Create: Main.java, Company.java, TaxSystem.java, SimplifiedTaxSystem6.java, SimplifiedTaxSystem15.java, Deal.java, Sale.java, Expenditure.java
08 июл 2026, 19:52
Верифицирован
08 июл 2026, 19:52
c9d58b6
Код
Авторство
О чём код?
import deals.Deal; import taxes.TaxSystem; public class Company { private String title; private int debit; private int credit; private TaxSystem taxSystem; // поле для хранения объектов класса TaxSystem и его наследников public Company(String title, TaxSystem taxSystem) { this.title = title; this.debit = 0; this.credit = 0; this.taxSystem = taxSystem; } public void shiftMoney(int amount) { if (amount > 0) { debit += amount; } else if (amount < 0) { credit += Math.abs(amount); } } public void payTaxes() { // использование полиморфизма: вызов calcTaxFor(debit, credit) для класса TaxSystem и его наследников int taxAmount = taxSystem.calcTaxFor(debit, credit); System.out.println("> компания " + title + " уплатила налог в размере: " + taxAmount + " руб."); debit = 0; credit = 0; } // метод для смены системы налогообложения public void setTaxSystem(TaxSystem taxSystem) { this.taxSystem = taxSystem; } // метод для применения сделок, возврата разницы debit - credit и уплаты налогов public int applyDeals(Deal[] deals) { System.out.println("> применение сделок компании"); if (deals[0] == null) { // предполагается что массив сделок заполняется начиная с deals[0] System.out.println("• [нет сделок]"); } // применение сделок из массива for (Deal deal : deals) { if (deal == null) { // проверка на null break; } System.out.println(deal.getComment()); debit += deal.getDebitChange(); credit += deal.getCreditChange(); } int differenceBeforeTax = debit - credit; payTaxes(); // выплата налогов return differenceBeforeTax; } }