Это соглашение для простоты программирования, цепочки конструктора и согласованности в языке.
Например, рассмотрим сценарий, в котором вы хотите использовать класс Scanner,
теперь что если разработчики JAVA назвали конструктор xyz!
Тогда как вы узнаете, что вам нужно написать:
Сканер scObj = новый xyz (System.in);
что могло бы быть очень странно, верно!
Или, скорее, вам, возможно, придется обратиться к огромному руководству, чтобы проверить имя конструктора каждого класса, чтобы создать объект, что опять же не имеет смысла, если бы вы могли решить проблему, просто назвав конструкторы, такие же, как у класса.
Во-вторых, конструктор сам создается компилятором, если вы явно не предоставите его, то компилятор может автоматически выбрать то, что может быть лучшим именем для конструктора, чтобы это было понятно программисту! Очевидно, что лучший выбор - оставить его таким же, как у класса.
В-третьих, вы, возможно, слышали о цепочке конструкторов, а затем при цепочке вызовов между конструкторами, как компилятор узнает, какое имя вы дали конструктору цепочечного класса!
Очевидно, что решение проблемы опять то же самое, сохраняйте имя строителя так же, как класс.
Спасибо за вопрос.