¿Qué es la sobrecarga de constructores en Java?

Publicado: 2022-11-16

La demanda de aplicaciones web está aumentando a nivel mundial. Java se ha convertido en la opción preferida de los desarrolladores que necesitan una programación a gran escala. La popularidad de Java se basa en sus funciones dinámicas, su interfaz fácil de usar y su alta compatibilidad con los principales sistemas operativos. El lenguaje tiene una rica API. Otra ventaja de Java es que ofrece un sólido soporte comunitario y excelentes servicios de documentación. No olvides la suite de herramientas de desarrollo que ofrece Java.

Tabla de contenido

¿Qué quieres decir con constructores en Java?

Los constructores en Java se utilizan principalmente para inicializar el estado del objeto. Al igual que los métodos, los constructores consisten en un grupo de instrucciones o declaraciones que deben ejecutarse cuando se crea un objeto.

¿Cuál es la necesidad de un Constructor en Java?

Para explicar la necesidad de un constrictor en Java, tomemos un ejemplo de una caja. Considere la caja como una clase. La caja tendrá diferentes variables como largo, ancho y alto. Cuando llegue el momento de crear un objeto, la clase de caja no tendrá ningún valor definido para sus dimensiones. Cuando se crean nuevos objetos, los constructores asignan valores a las variables de clase de dos maneras: mediante varios parámetros pasados ​​por el programador o utilizando constructores de Java predeterminados.

¿Qué quiere decir con sobrecarga de constructor en Java?

En la sobrecarga de constructores , se definen múltiples constructores de la misma clase. Sin embargo, cada constructor debe tener una firma única o parámetros de entrada específicos. El programa de sobrecarga de constructores en Java permite que una sola clase tenga más de un constructor, que difiere según la lista de argumentos pasados. Cada constructor sobrecargado se usa para realizar varias tareas de clase.

El compilador de Java identifica los constructores sobrecargados según los tipos de parámetros, las listas de parámetros y la cantidad de parámetros de entrada. Es bastante obvio que los constructores sobrecargados tienen firmas diferentes. La firma del constructor contendrá sus tipos de parámetros y su nombre. A veces surgen problemas de ambigüedad cuando dos constructores de clase tienen una firma idéntica. En tal situación, el compilador no puede diferenciar entre los dos. Por lo tanto, muestra una notificación de error. A veces, hay constructores sobrecargados con diferentes firmas. En este caso, el compilador se asegura de que el conductor sea invocado en función del número de parámetros de entrada de los diferentes objetos.

Ejemplo de sobrecarga de constructores

En este ejemplo, buscamos crear dos objetos de la clase StudentData . Un objeto usa un constructor predeterminado, mientras que el otro usa un constructor parametrizado. Ambos constructores tienen códigos de inicialización separados. Es posible crear constructores de cualquier número con códigos de inicialización different-2 para diferentes propósitos.

StudentData.java

clase StudentData

{

ID de estudiante interno privado ;

cadena privada stuName;

ESTUDIO INTERNO PRIVADO;

EstudianteDatos ()

{

//Constructor predeterminado

IDEstudiante = 100 ;

nombreEstudiante = “Estudiante Nuevo” ;

stuAge = 18 ;

}

StudentData ( int num1, String str, int num2)

{

//Constructor parametrizado

stuID = num1;

nombreEstudiante = str;

stuAge = num2;

}

//Métodos getter y setter

público int getStuID() {

devolver ID de estudiante;

}

public void setStuID( int stuID) {

este .stuID = stuID;

}

cadena pública getStuName() {

return nombreEstudiante;

}

public void setStuName( String nombreEstudiante) {

this .stuName = stuName;

}

public int getStuAge() {

devolver el equipaje;

}

public void setStuAge( int stuAge) {

this .stuAge = stuAge;

}

public static void principal( String args[])

{

//La creación de este objeto llamaría al constructor predeterminado

StudentData myobj = new StudentData ();

sistema _ out .println( “El nombre del estudiante es: “ +myobj.getStuName());

sistema _ out .println( “Edad del estudiante es: “ +myobj.getStuAge());

sistema _ out .println( “El ID del estudiante es: “ +myobj.getStuID());

/*La creación de este objeto llamaría al parametrizado

* constructor StudentData(int, String, int)*/

StudentData myobj2 = new StudentData ( 555 , “Chaitanya” , 25 );

sistema _ out .println( “El nombre del estudiante es: “ +myobj2.getStuName());

sistema _ out .println( “Edad del estudiante es: “ +myobj2.getStuAge());

sistema _ out .println( “El ID del estudiante es: “ +myobj2.getStuID());

}

}

Producción:

El nombre del estudiante es : Estudiante nuevo

La edad del estudiante es : 18

ID de estudiante es : 100

El nombre del estudiante es : Chaitanya

La edad del estudiante es : 25

La identificación del estudiante es : 555

Referencia: https://beginnersbook.com/2013/05/constructor-overloading/

Aprenda cursos de desarrollo de software en línea de las mejores universidades del mundo. Obtenga Programas PG Ejecutivos, Programas de Certificado Avanzado o Programas de Maestría para acelerar su carrera.

Comprender la función de this () en la sobrecarga del constructor

clase pública OverloadingExample2

{

Número de rollo de int privado ;

SobrecargaEjemplo2 ()

{

rolloNum = 100 ;

}

SobrecargaEjemplo2 ( int rnum)

{

esto ();

/*this() se usa para llamar al predeterminado

* constructor del constructor parametrizado.

* Siempre debe ser la primera afirmación

* dentro del cuerpo del constructor.

*/

rolloNum = rolloNum+ rnum;

}

public int getRollNum() {

volver rolloNum;

}

public void setRollNum( int rollNum) {

este .rollNum = rolloNum;

}

public static void principal( String args[])

{

OverloadingExample2 obj = new OverloadingExample2 ( 12 );

sistema _ fuera .println(obj.getRollNum());

}

}

Producción

112

Referencia: https://beginnersbook.com/2013/05/constructor-overloading/
Seminario web de desarrollo de software exclusivo de upGrad para usted:
Seminario web de desarrollo de software exclusivo de upGrad para usted:

SAAS Business – ¿Qué es tan diferente?

En el programa mencionado anteriormente, el constructor parametrizado se llama durante la creación del objeto. El constructor predeterminado se invoca cuando este () se coloca en el constructor parametrizado. Se inicializa la variable rollNum .

Otro ejemplo:

Cuando no implementa ningún constructor, el compilador de Java insertará un constructor predeterminado en el código durante la compilación. Sin embargo, el compilador no hace esto cuando implementa cualquier constructor. Vea el ejemplo aquí para entender mejor este punto:

Demostración de clase pública

{

Número de rollo de int privado ;

//No estamos definiendo un constructor sin argumentos aquí

Demostración ( número interno)

{

rolloNum = rolloNum+ rnum;

}

//Métodos Getter y Setter

public static void principal( String args[])

{

//Esta declaración invocaría al constructor sin argumentos

Demostración obj = nueva demostración ();

}

}

Producción:

Excepción en el subproceso "principal" java.lang. Error : compilación no resuelta

Problema: el constructor Demo () no está definido

Cursos y artículos populares sobre ingeniería de software

Programas Populares
Programa PG Ejecutivo en Desarrollo de Software - IIIT B Programa de Certificación Blockchain - PURDUE Programa de Certificado de Ciberseguridad - PURDUE MSC en Ciencias de la Computación - IIIT B
Otros artículos populares
Salario de ingeniero de nube en los EE. UU. 2021-22 Salario del arquitecto de soluciones de AWS en EE. UU. Salario de desarrollador de backend en los EE. UU. Salario de desarrollador front-end en EE. UU.
Salario de desarrollador web en EE. UU. Preguntas de la entrevista de Scrum Master en 2022 ¿Cómo iniciar una carrera en seguridad cibernética en 2022? Opciones de carrera en los EE. UU. para estudiantes de ingeniería

Explicando el uso de la sobrecarga del constructor

Con la sobrecarga de construcción , es posible habilitar la creación de una clase específica de un objeto de diferentes maneras. Por lo tanto, este concepto se usa en varios programas Java según los requisitos del programador. Cuando se utiliza la sobrecarga de constructores en Java , es posible inicializar los objetos con diferentes tipos de datos.

Por ejemplo, considere que hay un objeto con tres variables de instancia de clase. Debe asignar un valor particular a la variable de segunda instancia y valores predeterminados a las otras variables. Logre esto declarando múltiples constructores según diferentes firmas en la clase constituyente.

Ventajas de la sobrecarga de constructores en Java

A continuación se mencionan las principales ventajas de utilizar la sobrecarga de constructores mientras se escriben programas Java:

  • Puede inicializar las instancias de la clase de varias formas utilizando la sobrecarga del constructor.
  • Con la sobrecarga del constructor, puede lograr un polimorfismo estático.
  • Cada constructor sobrecargado realiza diferentes tareas para propósitos específicos.
  • La sobrecarga de constructores en Java suaviza el proceso de definición de múltiples constructores en una sola clase con firmas específicas únicas.

Conclusión

Este artículo analiza el programa de sobrecarga del constructor en Java y sus beneficios. Hay más de un constructor de una clase con diferentes firmas cuando hay constructores sobrecargados. Para compilar, cada constructor debe tener diferentes listas de parámetros. Una lista de parámetros comprenderá los tipos y órdenes de argumentos. Es imposible tener dos constructores con las mismas listas de parámetros en una clase.

Programa de certificado de desarrollo de pila completa de upGrad para desarrolladores de software y profesionales de la tecnología

Ya sea que sea nuevo en la industria del desarrollo de software o busque mejorar sus habilidades, debe aprender nuevas habilidades y tecnologías a través de cursos relevantes. El desarrollo full-stack es uno de esos cursos.

upGrad ofrece el Programa Ejecutivo en Desarrollo de Software a los candidatos interesados, diseñado exclusivamente para profesionales de TI, desarrolladores de software, profesionales de soporte técnico, analistas y recién graduados que buscan aventurarse en el campo del desarrollo de software.

Estará altamente capacitado en JavaScript y aprenderá Microservicios y MERN Stack con este curso. Además de aprender casi más de 10 lenguajes y herramientas de programación, también aprenderá las diversas herramientas utilizadas ampliamente en Facebook, Walmart, Netflix y LinkedIn. El programa proporciona una experiencia de aprendizaje envolvente en Cloud Labs.

Los estudiantes que realicen este programa de certificación tendrán la oportunidad de diseñar, desarrollar, probar e implementar aplicaciones web en el proyecto Capstone. Los estudiantes obtienen sesiones de tutoría profesional uno a uno con mentores líderes de la industria con estos beneficios. Al completar el curso, puede trabajar como desarrollador de pila completa, desarrollador de interfaz de usuario, desarrollador front-end y back-end.

¡ Solicite ahora para inscribirse en el curso!

¿Cuál es el uso de un constructor en Java?

Un constructor en Java se usa para inicializar objetos y crear un objeto de una clase. También puede establecer valores iniciales para características y atributos de objetos. Un constructor es como un bloque de códigos, similar a un método o un proceso.

¿Se produce una sobrecarga del constructor para la clase estática?

Curiosamente, los conductores estáticos no se pueden sobrecargar ni heredar. Un conductor estático se invoca automáticamente. El usuario no tiene control cuando se ejecuta el constructor estático en el programa.

¿Hay alguna diferencia entre la sobrecarga del constructor y la sobrecarga del método?

Un método se usa para realizar ciertas funciones de clase, mientras que un constructor inicializa un objeto. Cuando crea un objeto, los constructores se invocan implícitamente. Sin embargo, los métodos deben ser llamados por el usuario explícitamente.