Основы Java
2026-02-26 17:13 Diff

В программировании большое количество функций и методов имеют параметры, которые редко меняются.

В таких случаях этим параметрам задают значения по умолчанию, которые можно поменять по необходимости. Этим немного сокращается количество одинакового кода.

Это наглядно видно на таком примере:

В отличие от других языков, в Java нет возможности задать значение по умолчанию, но ее можно имитировать с помощью перегрузки методов.

Что это такое? Java позволяет создать несколько методов с одинаковым именем. У таких одинаковых методов должно выполняться одно из условий:

  • Разные типы входных параметров
  • Разное количество параметров
  • Все перечисленное выше одновременно

Посмотрим на примере метода, складывающего два числа:

Теперь допишем еще один метод sum(), который принимает только один параметр и складывает его с числом 10:

Компилятор без проблем выполнит такой код и создаст два метода с одним именем. Как Java узнает, какой метод нужно использовать?

Все очень просто: во время компиляции выбирается та версия метода, которая совпадает по типу и количеству параметров. Если такой метод не был найден, то возникнет ошибка.

Как минимум с одним перегруженным методом мы уже встречались — это метод substring(). По умолчанию он извлекает подстроку до конца, но ему можно передать второй параметр, который ограничит длину:

Перегрузка методов может приводить к дублированию кода, особенно когда речь идет про значения по умолчанию. В таких ситуациях логика одинаковая, разница лишь в начальной инициализации.

Для снижения дублирования достаточно сделать два шага:

  • Сначала определить общий метод, который принимает больше всего параметров
  • Затем вызывать его из тех методов, где есть значения по умолчанию

В коде это выглядит так:

В этом примере мы не сократили код, но он наглядно показывает принцип, описанный выше.