Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package moneymain;
- /**
- * <b>Класс "Money"</b><br>
- * Содержит целочисленные поля "{@link moneymain.Money#ruble рубли}" и
- * "{@link moneymain.Money#kopek копейки}", а так же методы для работы с ними.
- *
- * @author Arkanium77
- */
- public class Money {
- /**
- * Рубли - основная рассчётная единица РФ.<br>
- * Значение этого поля не может быть отрицательным.
- */
- private int ruble;
- /**
- * Копейки. 100 копеек равны одному {@link moneymain.Money#ruble рублю}<br>
- * Значение этого поля не может быть отрицательным.
- */
- private int kopek;
- /**
- * <b>Конструктор класса {@link moneymain.Money Money}</b><br>
- *
- * @param ruble {@link moneymain.Money#ruble рубли}
- * @param kopek {@link moneymain.Money#kopek копейки}
- * @throws NegativeException количество денег не может быть отрицательным.
- */
- Money(int ruble, int kopek) throws NegativeException {
- if (ruble < 0 || kopek < 0) {
- throw new NegativeException();
- }
- this.ruble = ruble;
- this.kopek = kopek;
- while (this.kopek >= 100) {
- this.ruble += 1;
- this.kopek -= 100;
- }
- }
- /**
- * <b>Конструктор класса {@link moneymain.Money Money}</b><br>
- *
- * @param money количество денег представленное в виде десятичной дроби, где
- * целая часть - {@link moneymain.Money#ruble рубли}, а числа (сотые и
- * десятые доли) - {@link moneymain.Money#kopek копейки}
- * @throws NegativeException количество денег не может быть отрицательным.
- */
- Money(double money) throws NegativeException {
- if (money < 0) {
- throw new NegativeException();
- }
- this.ruble = (int) money;
- this.kopek = (int) ((money - this.ruble) * 100);
- }
- /**
- * <b>Копирующий конструктор класса {@link moneymain.Money Money}</b><br>
- *
- * @param m копируемый объект
- */
- Money(Money m) {
- this.ruble = m.ruble;
- this.kopek = m.kopek;
- }
- /**
- * <b>Конструктор класса {@link moneymain.Money Money} по умолчанию</b><br>
- */
- Money() {
- this.ruble = 0;
- this.kopek = 0;
- }
- /**
- * <b>Сложить деньги.</b><br>
- * Складывает два объекта класса {@link moneymain.Money Money}
- *
- * @param a объект класса {@link moneymain.Money Money}
- * @return новый объект класса {@link moneymain.Money Money}, где
- * {@link moneymain.Money#ruble рубли} сложены с рублями, а
- * {@link moneymain.Money#kopek копейки} с копейками.
- */
- Money sum(Money a) {
- this.ruble += a.ruble;
- this.kopek += a.kopek;
- if (this.kopek >= 100) {
- this.ruble += 1;
- this.kopek -= 100;
- }
- return this;
- }
- @Override
- public String toString() {
- return this.ruble + "р. " + this.kopek + "к.";
- }
- }
- class NegativeException extends Exception {
- @Override
- public String toString() {
- return "Количество денег не может быть отрицательным";
- }
- }
Add Comment
Please, Sign In to add comment