Menu
Coddy logo textTech

Итоги: Счетчик и утилиты

Часть раздела Объектно-ориентированное программирование путешествия по Java на Coddy — урок 19 из 87.

challenge icon

Задание

Легко

Давайте создадим полноценную систему, которая объединяет класс Counter для отслеживания экземпляров с утилитарным классом MathUtils — объединив все, что вы узнали о статических переменных, статических методах, статических блоках и константах.

Вы создадите три файла для организации вашего кода:

  • Counter.java: Создайте класс, который отслеживает количество созданных экземпляров:
    • Приватная статическая переменная для подсчета общего количества экземпляров
    • Приватная переменная экземпляра id, которая хранит уникальный идентификатор каждого счетчика
    • Конструктор, который увеличивает общий счетчик и присваивает текущее значение счетчика в качестве id этого экземпляра
    • Метод getId(), который возвращает уникальный id этого счетчика
    • Статический метод getTotalCount(), который возвращает количество созданных объектов Counter
  • MathUtils.java: Создайте утилитарный класс только со статическими членами (экземпляры которого никогда не создаются):
    • Публичная константа PI со значением 3.14159
    • Публичная константа HALF со значением 0.5
    • Статический метод square(int n), который возвращает n в квадрате
    • Статический метод cube(int n), который возвращает n в кубе
    • Статический метод circleArea(double radius), который возвращает PI * radius * radius
  • Main.java: Продемонстрируйте совместную работу обоих классов. Вы получите два входных значения: число для математических операций и количество объектов Counter, которые нужно создать. Выведите следующее:
    • Square: [value]
    • Cube: [value]
    • Circle area (radius=[number]): [value] (площадь, отформатированная до 2 знаков после запятой)
    • Для каждого созданного Counter выведите: Counter [id] created
    • В конце: Total counters: [count]

Вы получите два входных значения: число (int) для математических вычислений и количество (int) объектов Counter, которые необходимо создать.

Не забудьте обращаться к статическим членам через имя класса (например, MathUtils.PI и Counter.getTotalCount()) и использовать String.format("%.2f", value) для форматирования десятичных значений.

Попробуйте сами

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int number = scanner.nextInt();
        int count = scanner.nextInt();
        
        // TODO: Используйте статические методы MathUtils для вычисления и вывода:
        // - Square: [value]
        // - Cube: [value]
        // - Circle area (radius=[number]): [value] (отформатировано до 2 знаков после запятой)
        
        // TODO: Создайте количество объектов Counter, равное 'count'
        // Для каждого созданного Counter выведите: Counter [id] created
        
        // TODO: Выведите общее количество созданных счетчиков
        // Total counters: [count]
    }
}

Все уроки раздела Объектно-ориентированное программирование