Hola te saluda Ubal lacosta.
Bienvenidos nuevamente.
Espero que estén listos para comenzar con esta elección.
Vamos a estudiar a continuación el tema de sobrecarga de constructores en Java están listos.
Vamos sobrecarga de constructores en Llada en primer lugar la sobrecarga de constructores tiene que
ver con ofrecer distintas opciones para crear un objeto de una clase en particular esto lo lograremos
creando diferentes constructores con distintos argumentos ya sea en número o en tipo de dato.
Recordemos que el nombre del constructor es igual al nombre de la clase en Java respetando que Java
es sensible a mayúsculas y minúsculas.
Por lo tanto siempre que encontremos un método que sea igual al nombre de la clase y que no regrese
ningún tipo de dato entonces será un constructor de la clase pudiendo existir varios dentro de la misma
clase
podemos decir entonces que la sobrecarga de un constructor es ofrecer más opciones para poder construir
un objeto de una clase.
Esto ya lo hemos realizado anteriormente.
Sin embargo vamos a formalizar este concepto en el código mostrado.
Podemos observar que en primer lugar se ha creado el constructor vació de la clase persona en la línea
4 es decir sin argumentos.
Sin embargo muchas veces queremos ofrecer más opciones de construir un objeto de tipo persona y esto
lo queremos ofrecer desde el momento de la creación del objeto.
Por lo tanto lo que vamos a hacer es agregar un nuevo constructor de esta clase.
Podemos observar que la firma inicial es la misma públic persona que es el nombre de nuestra clase y
también el siguiente constructor que estamos creando también indica públic persona.
Hasta aquí es exactamente lo mismo.
Sin embargo para sobrecargar un constructor basta con diferenciarlo por medio de los argumentos de este
constructor.
Por ejemplo podemos observar que nuestro constructor vació no contiene ningún argumento y la sobrecarga
del constructor básicamente lo estamos diferenciando por medio de los argumentos nombre y edad de esta
forma estamos sobrecargando el constructor que ya habíamos definido previamente y básicamente este constructor
únicamente se encarga de inicializar los argumentos respectivos de esta clase lo importante al momento
de sobrecargar un constructor es observar los tipos de los argumentos de nuestro constructor ya que
estos son los que hacen precisamente la diferencia para sobrecargar un constructor y poder manejar diferentes
argumentos.
Los nombres de los argumentos realmente no se toman en cuenta para la sobrecarga y únicamente se revisan
los tipos así como el orden de definición de cada uno de estos tipos por lo que no debe existir otro
constructor con los mismos tipos ya definidos en el mismo orden.
Sin embargo segregamos un constructor llamado Persona con los argumentos invertidos es decir primero
INDC y posteriormente estrechen.
Entonces este se considera otra sobrecarga de los constructores ya definidos es decir que el orden y
el tipo de los argumentos sí importa.
En resumen la sobrecarga de constructores es definir un constructor con el mismo nombre de la clase
pero con distintos argumentos considerando el tipo y el orden de los mismos.
Esto se hace con el objetivo de brindar varias opciones para la creación de nuestros objetos según la
clase que estemos codificando
uso de Diz en la sobrecarga de constructores.
En ocasiones podemos tener llamadas entre constructores de la misma clase.
Existen varias razones para realizar esta tarea.
Veamos un ejemplo de ello
supongamos que el constructor vació hace la tarea de asignar un valor al atributo Heydi persona.
Por ejemplo nuestro constructor vació lo que está haciendo es inicializar el atributo Heydi persona
y ésta es la única tarea que realiza este constructor vacío.
Sin embargo desde un constructor sobrecargado podríamos reutilizar el código que ya ha definido el constructor
vació.
Para ello lo que vamos a hacer es mandar a llamar el constructor vació con la siguiente sintaxis Diz
y entre paréntesis precisamente la llamada al constructor vacío.
De esta manera se ejecuta el código del constructor vacío.
Sin embargo este debe de ser la primera línea que debe existir dentro de un constructor si es que se
va a utilizar y posteriormente lo que podemos hacer es seguir trabajando con los argumentos recibidos
en este constructor en este caso terminamos de asignar los valores a los atributos restantes de esta
clase para hacer esta llamada entre constructores utilizamos la palabra Diz y posteriormente especificamos
los argumentos de la llamada al constructor que deseemos no necesariamente tiene que ser al constructor
vació sino que podemos mandar a llamar cualquier otro constructor simplemente proporcionando los argumentos
definiendo el tipo y el orden en el que se está también proporcionando estos argumentos.
Así es que por medio de Diz y entre paréntesis los argumentos se puede mandar a llamar el constructor
que deseemos así que esto realiza una llamada entre constructores de la misma clase para aprovechar
el código ya definido en otros constructores en este ejercicio podemos observar algo más en este caso
que el constructor sin argumentos es privado.
Esto quiere decir que desde otra clase yo no podría crear un objeto de tipo Persona sin argumentos obligatoriamente
tengo que utilizar este constructor o cualquier otro definido como público pero este constructor que
es privado únicamente se va a poder utilizar dentro de esta misma clase así que con mayor razón este
código no se va a poder utilizar sino únicamente dentro de esta misma clase y para ello es que nos sirve
esta llamada al constructor y en este caso es una llamada a un constructor privado es algo extra de
este ejercicio para que puedan observar que también podemos definir constructores privados esos constructores
no son accesibles fuera de esta clase sino únicamente dentro de esta clase ya que si recordamos es precisamente
el uso que le damos a la palabra reservada Privat así que en este caso de la clase persona debemos proporcionar
un nombre y una edad forzosamente para poder crear un objeto de este tipo no podemos simplemente crear
un objeto de tipo personas sin argumentos ya que este constructor es privado y de esta forma de manera
interna la funcionalidad de asignar el valor de Heydi persona lo realiza el constructor vació de esta
clase.
La única condición para mandar a llamar a otro constructor desde otro constructor sobrecargado es que
el uso de Diz sea la primera línea de código de este constructor.
Por ello en esta línea 12 lo primero que se usa en el constructor es la llamada a bis así que esta la
única restricción para mandar a llamar otro constructor dentro de esta misma clase.