@Ezekiel4
Охотник на пиратов и сборщик монолитов

Почему финализированные классы в исходниках java имеют private конструкторы?

В ходе изучения языка открыл для себя исходники и с головой в них погрузился. Сейчас я рассматриваю класс Math и StrictMath. Обратил внимание, что в обоих (и во многих других) есть приватный конструктор и интересный коментарий.

/*
 * Don't let anyone instantiate this class.
 */
private Math() {}


Почему это сделали? Чем плохо создание экземпляра, к примеру, класса StrictMath?
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Потому что эти классы - это не классы в общем-то. Классами они сделаны исключительно из-за того, что в джаве нельзя писать никакой код вне класса. Эти утилитарные классы - по сути своей неймспейсы для чистых функций(статических методов). Создавать их инстансы бессмысленно, и потому запрещено.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Mercury13
Программист на «си с крестами» и не только
Ничем особенным. Просто библиотечные функции сильнее защищают от «нештатного» использования.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
05 мая 2024, в 23:43
8000 руб./за проект
05 мая 2024, в 23:39
3000 руб./за проект
05 мая 2024, в 23:36
3000 руб./за проект