Hola y bienvenidos a esta elección.
A continuación vamos a ver el tema de sobrecarga de constructores en Java están listos.
Vamos bien vamos a cerrar este proyecto damos el derecho Claws
y vamos a crear un nuevo proyecto.
En fin un proyecto ya va Maiden.
Posteriormente ya la aplicación y el nombre del proyecto se va a llamar sobrecarga constructores
depositamos nuestro proyecto en cursos diagonal Java dejamos los demás valores por Forum y solamente
quitamos el nombre del paquete y damos clic en Finalizar
bien.
Ahora vamos a agregar una nueva clase a nuestro proyecto damos clic derecho new Java class y el nombre
de la clase se va a llamar persona
agregamos los atributos el atributo privado de tipo entero llamado Heydi persona
también el atributo privado de tipo string llamado nombre el atributo privado de tipo entero llamado
edad y también el atributo de tipo estático int llamado Contador personas
y vamos a agregar un primer constructor.
Este primer constructor vació ahora lo vamos a definir como tipo privado ya que este constructor únicamente
lo vamos a poder acceder desde esta misma clase así que definimos un constructor privado de tipo persona
no recibe ningún argumento ya que es el constructor vacío y lo que va a hacer este constructor es inicializar
el valor de la variable de persona utilizando la variable Contador personas que se estatica así que
agregamos el código 10 punto Heydi persona igual y le asignamos el valor con ayuda de la variable Contador
personas cualquier duda con esta sintaxis pueden revisar la sección del contexto estático donde vimos
este ejemplo.
Ahora vamos a agregar un segundo constructor y a esto se le va a conocer como sobrecarga de constructores
ya que la sobrecarga de constructores es tener uno o más constructores dentro de la misma clase así
que agregamos un constructor completo y esto es
la sobrecarga.
Así que definimos el constructor que es público de tipo persona ya que se debe de llamar exactamente
igual que el nombre de la clase y para poder sobrecargar un constructor debe de tener diferentes argumentos.
Así que en este caso vamos a validar un argumento el argumento de nombre y hasta aquí ya podría ser
otro constructor pero en este caso este constructor va a recibir dos argumentos va a recibir tanto el
nombre como la edad así que simplemente con que tenga diferentes números de argumentos entonces ya se
considera un constructor sobrecargado.
Ahora lo que vamos a hacer desde este constructor es mandar a llamar al constructor privado que hemos
definido anteriormente para mandar a llamar un constructor de esta misma clase se debe utilizar la palabra
reservada Diz pero en lugar de poner punto para acceder a algún atributo o método para acceder a un
constructor utilizamos los paréntesis ya que es como si mandáramos a llamar un método recordemos un
constructor.
Es un método especial que se llama igual que el nombre de la clase y no regresa ningún valor.
Así que en este caso mandamos a llamar de esta manera al constructor vació de esta clase.
Si quisiéramos mandar a llamar a otro constructor con argumentos simplemente pasaríamos por ejemplo
el argumento respectivo y se mandaría llamar de esta manera un constructor con un argumento pero en
este caso queremos mandar a llamar el constructor que se ha definido anteriormente así que debe de ser
la primera línea si vamos a utilizarlo para mandar a llamar a otro constructor de esta clase y lo mismo
habíamos comentado de la palabra super si vamos a utilizar super también debe de ser la primera línea.
Así que en este caso utilizamos súper o utilizamos Diz pero no podemos utilizar ambos como en la primera
llamada dentro de un constructor.
Así que de manera interna aquí estamos mandando llamar Diz pero de manera implícita este constructor
está mandado llamar súper en caso de que no lo hagamos de manera explícita así que de manera implícita
en este momento si es que no lo agregamos se está mandando llamar el constructor vació de la clase padre.
Sin embargo no lo vamos a poner ya que eso lo hace en automático el compilador de Java.
Pero vamos a poner el comentario
se manda llamar de manera automática el constructor vació de la clase padre así que lo que vamos a hacer
cuando queremos un objeto de esta clase persona este constructor no se puede mandar a llamar directamente
ya que es privado así que este constructor solamente se puede mandar a llamar.
Dentro de esta clase así que el único constructor que vamos a poder utilizar es el constructor con argumentos
y posteriormente este constructor lo que va a hacer es mandar a llamar el constructor privado sin argumentos
y posteriormente este constructor para terminar de crear nuestro objeto de tipo personal debido a que
no tenemos un extenso en automático extiende la clase.
Por lo tanto de manera automática el compilador manda llamar el constructor vació de la clase padre
es decir el constructor de la clase o bien termina de ejecutar el constructor de la clase Object y regresa
para terminar de construir nuestro objeto persona y finalmente va a regresar para terminar de ejecutar
el constructor sobrecargado el constructor completo bien pero eso lo vamos a ver a detalle paso a paso
cuando ejecutemos este ejercicio.
Así que después de la llamada el constructor vació de esta clase del constructor privado vamos a terminar
de inicializar nuestras variables con los argumentos que estamos recibiendo
así que inicializar los atributos de nombre y edad y con esto ya tenemos los constructores ya tenemos
el constructor vacio que es privado y el constructor con dos argumentos el constructor sobrecargado
y ahora vamos a agregar el método Tsering vamos a dar click derecho Intercorp
string y seleccionamos todos nuestros atributos y damos clic en Guía de ahí obviamente también lo podemos
crear manualmente pero en este caso lo estamos creando de manera automática para hacerlo más rápido.
Con esto ya tenemos toda nuestra clase de persona configurada correctamente bien y ahora según el diagrama
de clases que hemos visto vamos a crear una segunda clase en la clase e hija llamada empleado así quedamos
un derecho new Java class creamos la clase llamada empleado dejamos los demás valores por default y
damos sigue en finalizar esta clase empleado va a ser la clase e hija de la clase de persona.
Por lo tanto ponemos extensive
extiende la clase de persona y podemos se Baka de manera automática en este momento.
El compilador nos indica que debemos de agregar el constructor con dos argumentos ya que eso es lo que
necesita para mandar a llamar el constructor de la clase persona ya que la clase persona aunque tiene
dos constructores uno de ellos es privado.
Por lo tanto de manera obligatoria tiene que mandar a llamar este constructor con dos argumentos vamos
a dar clic sobre esta opción para ver el código que nos genera y podemos observar que no solamente crea
el constructor sino que también reconoce que debe de mandar a llamar el constructor padre con dos argumentos
ya que si quitamos esta llamada entonces esta clase hija no se puede crear.
No podemos crear objetos de esta clase ya que el constructor vació en la clase padre no existe.
Si quisiéramos omitir esta llamada entonces este constructor tendría que ser público y con eso se corregiría
este error pero la idea es que empecemos a crear flujos más complejos cuando creamos también nuestros
objetos.
Así que en este momento debemos de entender ya este tipo de errores y también cómo resolverlos en este
caso aunque no nos resolvió el IDE también nosotros ya debemos de entender qué es lo que sucede en este
caso estamos declarando el constructor empleado con dos argumentos de tipo público y posteriormente
estamos mandando a llamar el constructor de la clase padre con dos argumentos ya que es el único constructor
declarado en la clase padre.
Sin embargo en esta clase nos falta también agregar el atributo de sueldo ya que va a ser el atributo
que va a ser la diferencia con la clase padre.
Es una característica particular de esta clase hija ya que la clase empleado tiene el atributo de sueldo
que es de tipo privado y de tipo doble.
Entonces este constructor no está inicializar el atributo de sueldo por lo tanto vamos a agregar otro
constructor sobrecargado en esta misma clase e hija así que agregamos lo siguiente públic empleado y
agregamos el constructor sobrecargado recibimos los tres argumentos y no solamente dos
así que en este momento ya estamos recibiendo los tres argumentos por lo tanto este es un constructor
sobrecargado
ya que podemos observar que tenemos esta primera opción y esa sería la segunda opción para crear objetos
de tipo empleado.
Por lo tanto sería nuestro constructor sobrecargado podemos reutilizar el código que ya tiene el constructor
con dos argumentos o podemos mandar a llamar aquí nuevamente super y terminar de inicializar el atributo
de sueldo.
Pero vamos a tomar la primera opción para poner en práctica el concepto de DIS y mandar a llamar el
constructor con los argumentos que tenemos dentro de esta misma clase así que para mandar a llamar al
constructor con dos argumentos utilizamos diz que debe de ser la primera línea del constructor y pasamos
los argumentos que estamos recibiendo de nombre y edad aquí tengo un error el tipo es Hint y con esto
ya no nos marca ningún error y posteriormente inicializar el atributo de sueldo bien así que podemos
utilizar la llamada Adis o también podríamos usar la llamada a Super para inicializar directamente nosotros
los valores del constructor de la clase padre pero no podemos utilizar las dos líneas o utilizamos dis
o utilizamos super ya que ambas nos solicitan ser la primer línea a utilizar.
Así que cualquiera de las dos opciones funciona exactamente igual vamos a dejarles este comentario para
que vean que cualquiera de las dos opciones funciona pero solamente una de ellas se debe de utilizar
bien y ahora vamos a terminar de crear esta clase.
Vamos a dar clic derecho Intercorp y vamos a crear el método jet set para el atributo de sueldo agregamos
disputo sueldo y agregamos también el método string
pero también vamos a agregar súper punto tu string para que tengamos también concatenado los valores
de la clase padre y así conozcamos el estado completo de nuestro objeto de la clase empleado ya que
también tiene valores heredados de la clase persona que es la clase padre hasta aquí ya tenemos todo
nuestro código.
Vamos a detener hasta aquí este vídeo y en el siguiente vídeo vamos a realizar la prueba de estas clases.
Nos vemos en el siguiente vídeo.
Saludos.