Что такое перегрузка конструктора в Java

Опубликовано: 2022-11-16

Спрос на веб-приложения растет во всем мире. Java стала предпочтительным выбором для разработчиков, нуждающихся в крупномасштабном программировании. Популярность Java обусловлена ​​ее динамическими функциями, удобным интерфейсом и высокой совместимостью с ведущими операционными системами. Язык имеет богатый API. Еще одним преимуществом Java является то, что он предлагает надежную поддержку сообщества и отличные службы документации. Не забывайте о наборе инструментов разработки, предлагаемых Java.

Оглавление

Что вы подразумеваете под конструкторами в Java?

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

Зачем нужен конструктор в Java?

Чтобы объяснить необходимость констриктора в Java, давайте возьмем пример блока. Считайте коробку классом. Коробка будет иметь разные переменные, такие как длина, ширина и высота. Когда придет время создать объект, класс коробки не будет иметь никаких определенных значений для своих размеров. Когда создаются новые объекты, конструкторы присваивают значения переменным класса двумя способами — с помощью различных параметров, передаваемых программистом, или с помощью конструкторов Java по умолчанию.

Что вы подразумеваете под перегрузкой конструктора в Java?

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

Компилятор Java идентифицирует перегруженные конструкторы на основе типов параметров, списков параметров и количества входных параметров. Совершенно очевидно, что перегруженные конструкторы имеют разные сигнатуры. Сигнатура конструктора будет содержать его типы параметров и его имя. Иногда возникают проблемы неоднозначности, когда два конструктора класса имеют одинаковую сигнатуру. В такой ситуации компилятор не может различить их. Поэтому он отображает уведомление об ошибке. Иногда встречаются перегруженные конструкторы с разными сигнатурами. В этом случае компилятор устанавливает, что проводник вызывается в зависимости от количества входных параметров разных объектов.

Пример перегрузки конструктора

В этом примере мы хотим создать два объекта класса StudentData . Один объект использует конструктор по умолчанию, а другой — параметризованный конструктор. Оба конструктора имеют отдельные коды инициализации. Можно создавать конструкторы любых чисел с разными-2 кодами инициализации для разных-2 целей.

StudentData.java

класс StudentData

{

приватный студенческий ;

частная строка stuName;

частное помещение ;

Данные Студента ()

{

// Конструктор по умолчанию

StuID = 100 ;

stuName = «Новый студент» ;

помещение = 18 ;

}

StudentData ( int num1, String str, int num2)

{

//параметризованный конструктор

stuID = число1;

stuName = улица;

склад = число2;

}

// Методы получения и установки

общественный интервал getStuID () {

вернуть stuID;

}

public void setStuID ( int stuID) {

этот .stuID = stuID;

}

публичная строка getStuName () {

вернуть stuName;

}

public void setStuName( String stuName) {

это .stuName = stuName;

}

публичный интервал getStuAge () {

возвратное помещение;

}

public void setStuAge ( int stuAge) {

это .stuAge = stuAge;

}

public static void main( String args[])

{

//Это создание объекта вызовет конструктор по умолчанию

Данные Студента myobj = новые Данные Студента ();

Система . out .println( "Имя ученика: " +myobj.getStuName());

Система . out .println( "Возраст студента: " +myobj.getStuAge());

Система . out .println( "Идентификатор студента: " +myobj.getStuID());

/*Это создание объекта вызовет параметризованный

* конструктор StudentData(int, String, int)*/

StudentData myobj2 = new StudentData ( 555 , «Чайтанья» , 25 );

Система . out .println( "Имя студента: " +myobj2.getStuName());

Система . out .println( "Возраст студента: " +myobj2.getStuAge());

Система . out .println( "Идентификатор студента: " +myobj2.getStuID());

}

}

Выход:

Имя ученика : Новый ученик _

Возраст студента : 18 _

Студенческий идентификатор : 100 _

Имя ученика : Чайтанья _

Возраст студента : 25 _

Студенческий идентификатор : 555 _

Ссылка: https://beginnersbook.com/2013/05/constructor-overloading/

Изучайте онлайн-курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Понимание функции this() при перегрузке конструктора

открытый класс OverloadingExample2

{

частный номер рулона ;

Пример перегрузки2 ()

{

роллнум = 100 ;

}

OverloadingExample2 ( int rnum)

{

это ();

/*this() используется для вызова значения по умолчанию

* конструктор из параметризованного конструктора.

* Всегда должен быть первым оператором

* внутри тела конструктора.

*/

rollNum = rollNum+ rnum;

}

общественный интервал getRollNum () {

возврат рулонаNum;

}

public void setRollNum ( int rollNum) {

это .rollNum = rollNum;

}

public static void main( String args[])

{

OverloadingExample2 obj = новый OverloadingExample2 ( 12 );

Система . вне .println(obj.getRollNum());

}

}

Выход

112

Ссылка: https://beginnersbook.com/2013/05/constructor-overloading/
Эксклюзивный вебинар upGrad по разработке программного обеспечения для вас –
Эксклюзивный вебинар upGrad по разработке программного обеспечения для вас –

Бизнес SAAS — в чем отличие?

В упомянутой выше программе параметризованный конструктор вызывается при создании объекта. Конструктор по умолчанию вызывается, когда this() помещается в параметризованный конструктор. Переменная rollNum инициализируется.

Другой пример:

Если вы не реализуете какой-либо конструктор, компилятор Java вставит конструктор по умолчанию в код во время компиляции. Однако компилятор не делает этого при реализации любого конструктора. См. пример здесь, чтобы лучше понять этот момент:

демонстрация публичного класса

{

частный номер рулона ;

// Здесь мы не определяем конструктор без аргументов

Демо ( внутренний номер)

{

rollNum = rollNum+ rnum;

}

// Методы получения и установки

public static void main( String args[])

{

//Этот оператор вызовет конструктор без аргументов

Демонстрационный объект = новый Демонстрационный ();

}

}

Выход:

Исключение в потоке «основной» java.lang. Ошибка : неразрешенная компиляция

Проблема: конструктор Demo ( ) не определен

Популярные курсы и статьи по программной инженерии

Популярные программы
Программа Executive PG в разработке программного обеспечения - IIIT B Программа сертификации блокчейна — PURDUE Программа сертификации кибербезопасности - PURDUE MSC в области компьютерных наук - IIIT B
Другие популярные статьи
Зарплата облачного инженера в США в 2021-2022 гг. Заработная плата архитектора решений AWS в США Зарплата бэкенд-разработчика в США Зарплата Front End Developer в США
Заработная плата веб-разработчика в США Вопросы на собеседовании Scrum Master в 2022 году Как начать карьеру в сфере кибербезопасности в 2022 году? Варианты карьеры в США для студентов инженерных специальностей

Объяснение использования перегрузки конструктора

С перегрузкой конструкции становится возможным включить создание объекта определенного класса различными способами. Поэтому эта концепция используется в различных программах Java в зависимости от требований программиста. При использовании перегрузки конструктора в Java можно инициализировать объекты с разными типами данных.

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

Преимущества перегрузки конструктора в Java

Ниже перечислены основные преимущества использования перегрузки конструктора при написании программ на Java:

  • Вы можете инициализировать экземпляры класса различными способами, используя перегрузку конструктора.
  • С перегрузкой конструктора вы можете реализовать статический полиморфизм.
  • Каждый перегруженный конструктор выполняет разные задачи для определенных целей.
  • Перегрузка конструктора в Java упрощает процесс определения нескольких конструкторов в одном классе с уникальными сигнатурами.

Вывод

В этой статье обсуждается программа перегрузки конструктора в Java и ее преимущества. При наличии перегруженных конструкторов существует более одного конструктора класса с разными сигнатурами. Для компиляции каждый конструктор должен иметь разные списки параметров. Список параметров будет содержать типы и порядок аргументов. В классе не может быть двух конструкторов с одинаковыми списками параметров.

Сертификационная программа Full Stack Development от upGrad для разработчиков программного обеспечения и технических специалистов

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

upGrad предлагает заинтересованным кандидатам программу Executive в области разработки программного обеспечения, предназначенную исключительно для ИТ-специалистов, разработчиков программного обеспечения, специалистов по технической поддержке, аналитиков и недавних выпускников, желающих попробовать себя в сфере разработки программного обеспечения.

С этим курсом вы будете хорошо разбираться в JavaScript и изучать микросервисы и стек MERN. Наряду с изучением более 10 языков и инструментов программирования, вы также изучите различные инструменты, широко используемые в Facebook, Walmart, Netflix и LinkedIn. Программа обеспечивает иммерсивное обучение в Cloud Labs.

Студенты, принимающие участие в этой программе сертификации, будут иметь возможность проектировать, разрабатывать, тестировать и развертывать веб-приложения в проекте Capstone. Учащиеся получают индивидуальные занятия по карьерному наставничеству с ведущими отраслевыми наставниками с этими преимуществами. По окончании курса вы сможете работать full-stack разработчиком, UI-разработчиком, front-end и back-end разработчиком.

Подайте заявку сейчас , чтобы записаться на курс!

Какая польза от конструктора в Java?

Конструктор в Java используется для инициализации объектов и создания объекта класса. Вы также можете установить начальные значения для характеристик и атрибутов объекта. Конструктор подобен блоку кодов, подобно методу или процессу.

Происходит ли перегрузка конструктора для статического класса?

Интересно, что статические проводники не могут быть перегружены или унаследованы. Статический проводник вызывается автоматически. Пользователь не имеет никакого контроля, когда статический конструктор выполняется в программе.

Есть ли разница между перегрузкой конструктора и перегрузкой метода?

Метод используется для выполнения определенных функций класса, тогда как конструктор инициализирует объект. Когда вы создаете объект, конструкторы вызываются неявно. Однако методы должны вызываться пользователем явно.