Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2020, 16:30   #1
VolodyaBuzin
Пользователь
 
Регистрация: 10.11.2017
Сообщений: 56
По умолчанию Обработка исключений для десятичного счётчика и класс-наследник

Добрый день! Сижу над десятичным счётчиком. В моём задании есть такие непонятные моменты:
1) "При возникновении ошибок должны выбрасываться исключения";
2) "Для разработанного класса создать класс-наследник"
3) "В разрабатываемом классе должны быть переопределены методы equals, hashCode и toString"
Вот класс, главная функция и вывод:

Код:
package com.lab5;
 
public class Counter {
    private int min, max, current;
    
    public Counter(int min_, int max_, int current_) {
        min = min_;
        max = max_;
        current = current_;
        
        if (max < min) {
            int tmp = max;
            max = min;
            min = tmp;
        }
        
        if (current < min) current = min;
        if (current > max) current = max;
    }
    
    public Counter(int min_, int max_) {
        this(min_, max_, min_);
        current = min;
    }
    
    public Counter() {
        this(0, 16, 0);
    }
    
    public void inc() {
        current++;
        if (current > max) current = min;
    }
    
    public void dec() {
        current--;
        if (current < min) current = max;
    }
    
     public int value() {
         return current;
     }
}
Код:
package com.lab5;
 
public class MainApp {
 
    public static void main(String[] args) {
          Counter a = new Counter(5, 10, 6);
          Counter b = new Counter(6, 4, 7);
          Counter c = new Counter(5, 3);
          System.out.println("a: " + a.value());
          System.out.println("b: " + b.value());
          System.out.println("c: " + c.value());
          System.out.println("----------------------");
          for (int i = 0; i < 2; ++i) {
           a.inc();
           b.inc();
           c.inc();
          }
          System.out.println("a: " + a.value());
          System.out.println("b: " + b.value());
          System.out.println("c: " + c.value());
          System.out.println("----------------------");
          for (int i = 0; i < 20; ++i) {
           a.dec();
           b.dec();
           c.dec();
          }
          System.out.println("a: " + a.value());
          System.out.println("b: " + b.value());
          System.out.println("c: " + c.value());
          System.out.println("----------------------");
 
    }
 
}
Код:
a: 6
b: 6
c: 3
----------------------
a: 8
b: 5
c: 5
----------------------
a: 6
b: 6
c: 3
----------------------
VolodyaBuzin вне форума Ответить с цитированием
Старый 15.11.2020, 16:31   #2
VolodyaBuzin
Пользователь
 
Регистрация: 10.11.2017
Сообщений: 56
По умолчанию

1) Во-первых, у меня недели не хватит вызубрить всю таблицу исключений. Как называются исключения, вылетающие если минимальная граница больше максимальной, границы диапазона вышли за диапазон int, short или long, а счётчик вышел за границы диапазона? Как в этих случаях if-else заменить на try-catch, и когда лучше бросать исключения?
2) Во-вторых, не могу себе представить потомков для десятичного счётчика. Для работника - бухгалтер, дворник, преподаватель. Для телефона - стационарный телефон, таксофон, смартфон. Для машины - грузовик, легковушка, седан, пожарная машина. А что для десятичного счётчика?
3) Как лучше генерировать equals, hashcode и tostring - в суперклассе с учётом наследников (галочку поставить на пункте "Учитывать потомков") или для каждого класса разные реализации?
VolodyaBuzin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс-наследник от QIODevice andreil Общие вопросы C/C++ 0 16.04.2015 13:46
Задание по с++ (класс наследник) Jleks Помощь студентам 1 27.01.2013 10:22
Обработка исключений с пoмощью структурированной обработки исключений Smart Visual C++ 3 01.11.2012 15:38
Класс наследник JScrollPane Анатоль Общие вопросы по Java, Java SE, Kotlin 1 09.12.2011 14:58
Не компилиться класс наследник.. coper Общие вопросы .NET 1 30.03.2010 00:39