Перегрузка конструктора в Java: объяснение, преимущества и примеры
Опубликовано: 2021-07-22Оглавление
Основы Java
Java, с ее замечательными и динамичными функциями, стала одним из наиболее популярных вариантов выбора разработчиков для крупномасштабного программирования веб-приложений. Это удобный язык с широким спектром необычных функций. Его совместимость со всеми операционными системами и богатый API сделали его популярным во всем мире. Язык предлагает надежную поддержку сообщества и отличные службы документации. Java имеет набор надежных инструментов разработки.
Конструкторы в Java
Конструкторы в Java используются для инициализации состояния объекта. Как и методы, конструкторы также содержат группу операторов или инструкций, которые должны выполняться при создании объекта.
Зачем нам нужен конструктор в Java?
Рассмотрим Коробку. Если предполагается, что блок является классом, он может иметь несколько переменных, таких как ширина, длина и высота. Когда объект должен быть создан, класс коробки не будет иметь определенных значений для своих размеров. Во время создания новых объектов конструкторы присваивают значения переменным класса. Присвоение значений может быть выполнено либо с помощью конструкторов Java по умолчанию, либо явно с помощью параметров, переданных программистом.
Когда вызывается конструктор?
Как минимум один конструктор вызывается каждый раз, когда объект создается с помощью ключевого слова new(). Этот конструктор предоставляет начальные значения членам данных класса. Как правило, конструктор вызывается при создании нового объекта или экземпляра.
Перегрузка конструктора в Java
Процесс определения нескольких конструкторов одного класса называется перегрузкой конструктора. Однако каждый конструктор должен иметь разные сигнатуры или входные параметры. Другими словами, перегрузка конструктора в Java — это метод, который позволяет одному классу иметь более одного конструктора, который зависит от списка переданных аргументов. Каждый перегруженный конструктор используется для выполнения разных задач в классе.
Компилятор Java идентифицирует перегруженные конструкторы на основе их списков параметров, типов параметров и количества входных параметров. Следовательно, перегруженные конструкторы должны иметь разные сигнатуры. Сигнатура конструктора содержит его имя и типы параметров. Проблема неоднозначности возникает, когда два конструктора класса имеют одинаковую сигнатуру.
Компилятор не может различить их и, следовательно, возвращает уведомление об ошибке. При перегрузке конструкторов с разными сигнатурами компилятор определяет вызываемый конструктор на основе количества входных параметров объектов.
Использование перегрузки конструктора
Поскольку перегрузка конструкции позволяет создавать объект определенного класса несколькими способами, она чаще всего используется в программах на Java в зависимости от требований программиста. С помощью перегрузки конструктора объекты могут быть инициализированы с различными типами данных.
Учтите, что объект с тремя переменными экземпляра класса взят в качестве примера, где конкретное значение должно быть присвоено второй переменной экземпляра, а другим переменным должны быть присвоены значения по умолчанию. Это может быть достигнуто путем объявления нескольких конструкторов в соответствии с различными сигнатурами в составном классе.
Читайте: Объяснение компонентов и архитектуры Java Career
Пример кода для реализации перегрузки конструктора в Java
Рассмотрим программу, в которой класс Employee имеет три конструктора. На основе переданных значений каждый из трех вызывается для инициализации объекта.
Использование этой ссылки в Java
Все методы и конструкторы экземпляра приветствуют неявный параметр this, который используется для ссылки на текущий объект. Текущий объект — это тот объект, для которого вызывается метод. Мы можем использовать ссылку this для ссылки на текущий объект в любом конструкторе или методе. Ссылку this можно использовать, как и любые другие ссылки на объекты, для доступа к методам экземпляра, конструкторам и переменным внутри метода или тела конструктора.
Вот несколько важных сценариев, в которых используется ссылка this:
- Когда имена параметров отличаются от имен переменных экземпляра
- Когда ссылка должна быть передана текущему объекту, а параметр другому методу
- Когда конструктор должен быть вызван из другого конструктора.
В этом случае ссылочные аргументы this() должны совпадать с аргументами целевого конструктора. Функция this() должна быть первой инструкцией внутри конструктора. В особых случаях, таких как сложность процедуры инициализации, эту функцию можно использовать для устранения повторяющегося кода в нескольких конструкторах.
Изучайте онлайн-курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.
Преимущества перегрузки конструктора в Java
Ключевые преимущества использования перегрузки конструктора при написании программ на Java:
- Перегрузка конструктора позволяет реализовать статический полиморфизм.
- Экземпляры класса можно инициализировать несколькими способами с использованием перегрузки конструктора.
- Это облегчает процесс определения нескольких конструкторов в классе с уникальными сигнатурами.
- Каждый перегруженный конструктор выполняет различные задачи для определенных целей.
Резюме
- Перегрузка конструктора в Java относится к использованию более одного конструктора в классе экземпляра. Однако каждый перегруженный конструктор должен иметь разные подписи.
- Чтобы компиляция прошла успешно, каждый конструктор должен содержать свой список аргументов.
- Список параметров включает последовательность и типы входных аргументов.
- Два конструктора в классе с одинаковым списком параметров в Java невозможны.
Если вам интересно узнать больше о разработке программного обеспечения с полным стеком, ознакомьтесь с программой Executive PG upGrad и IIIT-B по разработке программного обеспечения — специализация в разработке полного стека, которая предназначена для работающих профессионалов и предлагает более 500 часов тщательного обучения, 9+ проекты и задания, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.