Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 4
Регистрация: 21.08.2017
Сообщений: 208

Обработка исключений для десятичного счётчика и класс-наследник

15.11.2020, 16:20. Показов 692. Ответов 1

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

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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;
     }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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("----------------------");
 
    }
 
}
XML
1
2
3
4
5
6
7
8
9
10
11
12
a: 6
b: 6
c: 3
----------------------
a: 8
b: 5
c: 5
----------------------
a: 6
b: 6
c: 3
----------------------
Добавлено через 14 минут
1) Во-первых, у меня недели не хватит вызубрить всю таблицу исключений. Как называются исключения, вылетающие если минимальная граница больше максимальной, границы диапазона вышли за диапазон int, short или long, а счётчик вышел за границы диапазона? Как в этих случаях if-else заменить на try-catch, и когда лучше бросать исключения?
2) Во-вторых, не могу себе представить потомков для десятичного счётчика. Для работника - бухгалтер, дворник, преподаватель. Для телефона - стационарный телефон, таксофон, смартфон. Для машины - грузовик, легковушка, седан, пожарная машина. А что для десятичного счётчика?
3) Как лучше генерировать equals, hashcode и tostring - в суперклассе с учётом наследников (галочку поставить на пункте "Учитывать потомков") или для каждого класса разные реализации?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.11.2020, 16:20
Ответы с готовыми решениями:

Описать класс А, наследник класса В, класс С – наследник классов А и В, класс D – наследник класса С
Описать класс А, наследник класса В, класс С – наследник классов А и В, класс D – наследник класса С . Отразить на экране полученные классы.

Абстрактный класс CGraphicsObject, его наследник - базовый класс CPoint, и класс - наследник от CPoint
Всем доброй ночи! Очень нужна помощь и по мере возможности разъяснения на темы: абстрактный класс в задании(что он из себя представляет и...

Обработка исключений. Как организовать общий обработчик исключений?
У меня есть последовательность вызова методов для внесения данных в таблицу БД. Сам метод внесения данных. Он генерирует исключение ...

1
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
15.11.2020, 20:14
1) зачем их учить? Напиши свое исключение и его кидай
2) к преподу подойди и спроси
3) нужны разные - генерируй разные, не нужны разные - не генерируй разные
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.11.2020, 20:14
Помогаю со студенческими работами здесь

Обработка исключений для new
Всем привет! Вопрос следующий. Когда функция new не может выделить память, то генериться исключение bad_alloc. Допустим есть следующий...

Обработка исключений с пмощью структурированной обработки исключений
Есть функция, которая определенным образом работает с файлами,но при работе с файлами &quot;не подходящего&quot; типа вызывается...

Обработка исключений для textbox
У меня 3 текст бокса. Я хочу, чтобы нельзя было вводить буквы, а также значение а больше 3, значение b больше 4. Как мне сделать обработку...

Обработка исключений для изменения строки
private void button1_Click(object sender, EventArgs e) { stroka = tb_result.Text; string res =...

Создать класс Pair(пара чисел) и класс-наследник Fraction
Создать класс Pair (пара чисел); определить методы изменения полей и сравнения пар: пара p1 больше пары p2, если (first.p1&gt;first.p2) или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru