Advertisement
Guest User

Untitled

a guest
Apr 6th, 2020
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.65 KB | None | 0 0
  1. package ru.ref;
  2.  
  3. /**
  4.  * Пример внутреннего класса
  5.  * Нестатические вложенные классы называются внутренними.
  6.  * Non-static nested classes are called inner classes.
  7.  */
  8. public class Account {
  9.     private final String number;
  10.     private final String owner;
  11.     private int amount;
  12.  
  13.     public Account(final String number, final String owner) {
  14.         this.number = number;
  15.         this.owner = owner;
  16.     }
  17.  
  18.     public String getNumber() {
  19.         return number;
  20.     }
  21.  
  22.     public String getOwner() {
  23.         return owner;
  24.     }
  25.  
  26.     public int getAmount() {
  27.         return amount;
  28.     }
  29.  
  30.     /**
  31.      * Метод, снятия денег
  32.      *
  33.      * @param amountToWithdraw сумма, для вывода средств
  34.      */
  35.     private void withdraw(int amountToWithdraw) {
  36.         if (amountToWithdraw <= 0) {
  37.             System.out.println("Введена некорректная сумма для снятия.");
  38.         }
  39.         if (amountToWithdraw > amount) {
  40.             System.out.println("На карте недостаточно средств для снятия. Баланс: " + amount);
  41.             return;
  42.         }
  43.         amount -= amountToWithdraw;
  44.     }
  45.  
  46.     /**
  47.      * Метод, пополняющий счёт
  48.      *
  49.      * @param amountToDeposit сумма, на которую вы хотите пополнить счёт
  50.      * @return сумму депозита
  51.      */
  52.     private void replenish(int amountToDeposit) {
  53.         if (amountToDeposit <= 0) {
  54.             System.out.println("Введена некорректная сумма для пополнения баланса.");
  55.             return;
  56.         }
  57.         amount += amountToDeposit;
  58.     }
  59.  
  60.     /**
  61.      * Внутренний класс
  62.      * Inner class
  63.      */
  64.     public class Card {
  65.         private final String number;
  66.         private final String name;
  67.         private final Account account;
  68.  
  69.         public Card(String name, String number, Account account) {
  70.             this.name = name;
  71.             this.number = number;
  72.             this.account = account;
  73.         }
  74.  
  75.         public String getNumber() {
  76.             return number;
  77.         }
  78.  
  79.         public void withdraw(final int amountToWithdraw) {
  80.             account.withdraw(amountToWithdraw);
  81.         }
  82.  
  83.         public void replenish(final int amountToDeposit) {
  84.             account.replenish(amountToDeposit);
  85.         }
  86.  
  87.         public String getName() {
  88.             return name;
  89.         }
  90.  
  91.         public Account getAccount() {
  92.             return account;
  93.         }
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement