Sobrecarga de constructores en Java: explicación, beneficios y ejemplos
Publicado: 2021-07-22Tabla de contenido
Fundamentos de Java
Java, con sus notables y dinámicas características, se ha convertido en una de las opciones más solicitadas por los desarrolladores para la programación a gran escala de aplicaciones web. Es un lenguaje fácil de usar con una amplia gama de características extraordinarias. Su compatibilidad con todos los sistemas operativos y la rica API lo han hecho popular en todo el mundo. El lenguaje ofrece un sólido soporte comunitario y excelentes servicios de documentación. Java tiene un conjunto de herramientas de desarrollo sólidas.
Constructores en Java
Los constructores en Java se utilizan para inicializar el estado del objeto. Al igual que los métodos, los constructores también contienen un grupo de declaraciones o instrucciones que deben ejecutarse mientras se crea un objeto.
¿Por qué necesitamos un constructor en Java?
Consideremos una Caja. Si se supone que la caja es una clase, puede tener varias variables, como ancho, largo y alto. Cuando se va a crear un objeto, la clase de caja no tendrá valores definidos para sus dimensiones. En el momento de crear nuevos objetos, los constructores asignan valores a las variables de la clase. La asignación de valores se puede realizar utilizando constructores de Java predeterminados o explícitamente mediante los parámetros pasados por el programador.
¿Cuándo se invoca un constructor?
Se invoca un mínimo de un constructor cada vez que se crea un objeto con la palabra clave new(). Este constructor proporciona valores iniciales a los miembros de datos de la clase. En general, se llama a un constructor cuando se crea un nuevo objeto o instancia.
Sobrecarga de constructores en Java
El proceso de definir varios constructores de la misma clase se denomina sobrecarga de constructores. Sin embargo, cada constructor debe tener una firma o parámetros de entrada diferentes. En otras palabras, la sobrecarga de constructores en Java es una técnica que permite que una sola clase tenga más de un constructor que varía según la lista de argumentos pasados. Cada constructor sobrecargado se usa para realizar una tarea diferente en la clase.
El compilador de Java identifica los constructores sobrecargados sobre la base de sus listas de parámetros, tipos de parámetros y el número de parámetros de entrada. Por lo tanto, los constructores que están sobrecargados deben tener firmas diferentes. La firma de un constructor contiene su nombre y tipos de parámetros. Surge un problema de ambigüedad cuando dos de los constructores de clase tienen una firma idéntica.
El compilador no puede diferenciar entre los dos y, por lo tanto, devuelve una notificación de error. Cuando los constructores con diferentes firmas están sobrecargados, el compilador determina el constructor que se invocará en función del número de parámetros de entrada de los objetos.
Uso de la sobrecarga de constructores
Como la sobrecarga de construcción permite la creación del objeto de una clase específica de varias maneras, se usa más comúnmente en programas Java según los requisitos del programador. Con el uso de la sobrecarga del constructor, los objetos se pueden inicializar con diferentes tipos de datos.
Considere que un objeto con tres variables de instancia de clase se toma como un ejemplo donde se debe asignar un valor particular a la variable de segunda instancia y se deben asignar valores predeterminados a las otras variables. Esto se puede lograr mediante la declaración de múltiples constructores de acuerdo con las diferentes firmas en la clase constituyente.
Leer: Explicación de los componentes y la arquitectura de la carrera de Java
Código de ejemplo para la implementación de la sobrecarga de constructores en Java
Consideremos un programa en el que una clase Employee tiene tres constructores. Según los valores pasados, cada uno de los tres se invoca para inicializar un objeto.
Uso de esta Referencia en Java
Todos los métodos y constructores de instancia aceptan un parámetro implícito llamado 'esto', que se usa para referirse al objeto actual. El objeto actual es aquel objeto en el que se invoca el método. Podemos usar la referencia 'this' para referirnos al objeto actual dentro de cualquier constructor o método. La referencia 'this' se puede usar, como cualquier otra referencia de objeto, para acceder a métodos de instancia, constructores y variables, dentro del cuerpo del método o del constructor.
Algunos escenarios importantes donde se usa la referencia 'esto' son:
- Cuando los nombres de los parámetros son diferentes de los nombres de las variables de instancia
- Cuando se va a pasar una referencia al objeto actual y un parámetro a otro método
- Cuando se va a invocar un constructor desde otro constructor.
Los argumentos de referencia this() deben coincidir con los argumentos del constructor de destino en este caso. La función this() debe ser la primera declaración dentro del constructor. En casos especiales como la complejidad de la rutina de inicialización, esta función se puede utilizar en la eliminación de código duplicado en múltiples constructores.
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.
Beneficios de la sobrecarga de constructores en Java
Las principales ventajas de hacer uso de la sobrecarga de constructores al escribir programas Java son:
- La sobrecarga del constructor permite la realización de polimorfismo estático.
- Las instancias de clase se pueden inicializar de varias maneras con el uso de la sobrecarga del constructor.
- Facilita el proceso de definición de múltiples constructores en una clase con firmas únicas.
- Cada constructor sobrecargado realiza varias tareas para propósitos específicos.
Resumen
- La sobrecarga de constructores en Java se refiere al uso de más de un constructor en una clase de instancia. Sin embargo, cada constructor sobrecargado debe tener firmas diferentes.
- Para que la compilación sea exitosa, cada constructor debe contener una lista diferente de argumentos.
- La lista de parámetros incluye la secuencia y los tipos de argumentos de entrada.
- Dos constructores en una clase con la misma lista de parámetros no son factibles en Java.
Si está interesado en obtener más información sobre el desarrollo de software de pila completa, consulte el Programa PG ejecutivo en desarrollo de software de upGrad & IIIT-B: especialización en desarrollo de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de capacitación rigurosa, 9+ proyectos y asignaciones, estado de exalumno de IIIT-B, proyectos finales prácticos y asistencia laboral con las mejores empresas.