Hola y bienvenidos esta elección.
A continuación vamos estudiar el tema de constructores en Java están listos.
Vamos bien vamos a continuar con nuestro ejercicio de aritmética.
Pero ahora vamos a modificarlo para manejar el concepto de constructores un constructor básicamente
nos permite inicializar los valores de nuestra clase y además reservar espacio en memoria para que se
pueda crear un objeto de nuestra clase existen varios tipos de constructores que podemos tener en nuestras
clases.
El primer tipo de constructor es el constructor vació a su vez también un constructor.
Es un método especial en Java ya que únicamente se puede mandar a llamar este método cuando se está
creando el objeto no se puede mandar a llamar.
Un método de Tipo Constructor posterior a la creación del objeto y si no definimos un constructor en
nuestra clase de manera explícita.
Entonces el compilador de java va a agregar por default lo que se conoce como el constructor vacio.
Por ello es que podemos observar que nuestra clase aritmética no hemos definido un método de tipo constructor
el cual vamos a ver a continuación pero en automático el compilador de java agregó este método por nosotros.
De lo contrario no podríamos crear el objeto aritmética que hemos utilizado dentro del método main bien
así que vamos a definir nuestro constructor vació el constructor como hemos comentado es un método especial
en Java.
únicamente se puede mandar a llamar la primera vez que se crea este objeto y se debe de llamar exactamente
igual que la clase así que para identificar un constructor dentro de nuestra clase debemos de buscar
un método que se llame exactamente igual que nuestra clase así que vamos a definir el siguiente constructor
vamos a utilizar el modificador de acceso público para que se pueda mandar a llamar desde otra clase
y posteriormente la diferencia también con un método y un constructor es que un constructor no regresa
ningún tipo de dato.
Por lo tanto no vamos a encontrar aquí un Void o un Hint o un Streeck etc. ya que no se va a definir
un tipo de regreso así que inmediatamente después del modificador de acceso vamos a encontrar el nombre
de nuestra clase y de esta manera es que vamos a poder identificar el método que corresponde a un constructor
de nuestra clase en este caso el constructor vació no recibe ningún argumento y abrimos el cuerpo de
nuestro constructor así que podemos observar que es muy similar a la definición de un método.
Sin embargo se debe de llamar exactamente igual que en nuestra clase.
Por ejemplo si nos llegamos a equivocar y utilizamos la letra minúscula podemos observar que ya tenemos
un error ya que entonces el compilador de Java en este caso infiere que queremos declarar un método
y no un constructor.
Por lo tanto nos está indicando que debemos agregar el tipo de retorno y como este método no tiene un
tipo de retorno entonces no es una definición válida de un método para que sea una definición válida.
En este caso de un constructor entonces debe de llamarse igual que la clase y no debe de regresar ningún
tipo de dato.
En este caso los constructores por default o vacíos son los que se agregan de manera automática por
el compilador siempre y cuando no tengamos otro tipo de constructores que reciban argumentos.
Si definimos un constructor con argumentos entonces ya no se va a agregar de manera automática.
Este constructor y nosotros somos responsables de agregarlo a nuestra clase bien vamos a mandar a imprimir
un mensaje ejecutando
constructor vacío para que sepamos en qué momento se manda llamar este constructor.
Así que podemos observar que ya estamos definiendo de manera explícita nuestro constructor vacío y cuando
se cree en nuestro objeto aritmética se va a mandar a consola el mensaje ejecutando constructor vacío
bien por otro lado en nuestra clase de prueba.
Podemos observar que tenemos la llamada de Niu a nuestra clase aritmética y ahora ya podemos entender
que la llamada a estos paréntesis realmente estamos mañana llamar el constructor vació o con argumentos
si pasamos argumentos entonces necesitamos definir un constructor que reciban los diferentes argumentos
que estamos proporcionando y como en este caso no estamos definiendo ningún argumento no estamos pasando
ningún argumento entonces está mandando llamar el constructor vacío si no se ha definido en nuestra
clase en automático el compilador lo va a agregar pero en este caso como ya lo hemos definido entonces
se va a ejecutar esta línea de código de nuestro constructor que hemos definido vamos a comprobarlo
vamos a poner un punto de ruptura.
En esta línea guardamos cambios y ejecutamos damos clic derecho de Buffy y presionamos F7 para entrar
al detalle de la llamada del constructor así que presionamos F7 o step into y podemos llevar que ya
estamos posicionados dentro de la llamada del constructor vacío ya estamos dentro de la clase aritmética.
Ahora presionamos F8 vamos a consola de nueva cuenta F8 y podemos observar el mensaje ejecutando constructor
vacío presionamos de nueva cuenta f 8 y presionamos otra vez f 8 y en este momento ya se ha creado el
objeto aritmética.
Así que una de las labores de haber mandado a llamar este constructor vació es por un lado inicializar
las variables de nuestra clase en este caso no hemos declarado ningún atributo de esta clase.
Por lo tanto la siguiente labor que realiza este constructor es reservar espacio en memoria para que
se pueda crear una instancia de la clase aritmética y por ello es que se crea el objeto aritmética en
memoria podemos observar que la variable aritmética ya está apuntando al objeto que se creó en este
espacio de memoria.
Este es un valor hexadecimal así que esta es la ubicación de memoria donde se encuentra el objeto que
se ha creado el objeto aritmética.
Así que en resumen tenemos nuestra clase aritmética que es la plantilla
y por otro lado en esta línea de código lo que estamos haciendo es mandar a llamar el constructor que
está definido dentro de esta plantilla y lo que va a hacer este constructor es crear un objeto solicitando
espacio de memoria para crear este objeto y ese objeto se creó en el espacio de memoria que nos ha indicado
y posteriormente la variable aritmética apunta al objeto que se ha creado en el espacio de memoria que
nos ha proporcionado el constructor vacío.
Pero también podríamos mandar a llamar un constructor con argumentos esto lo vamos a ver a continuación
pero con esa sintaxis ya podemos entender que esta línea de código realmente lo que está haciendo es
mandar a llamar el constructor vació para inicializar los argumentos de nuestra clase por un lado si
es que fuera necesario y por otro lado reservar espacio en memoria.
Así que cada vez que veamos la palabra reservada Niu realmente lo que estamos haciendo es mandar llamar
el constructor de nuestra clase y esta es la única forma en que podemos mandar a llamar un constructor
de la clase en conjunto con la palabra reservada Nio.
No es posible por ejemplo escribir nuestra variable aritmética punto
aritmética como si mandáramos a llamar el constructor vacío.
Esto no sería posible ya que el constructor únicamente se puede mandar a llamar para crear el objeto.
Esto quiere decir que debe ir en conjunto con la palabra reservada.
Una vez que ya se ha creado el objeto ya no podemos mandar a llamar los constructores quitamos esta
línea
vamos a detener la ejecución paso a paso ya que las demás líneas de código ya tienen que ver con la
llamada al método ya no tienen que ver con el constructor.
Así que presionamos este botón para detener la ejecución paso a paso y podemos quitar nuestro punto
de ruptura.
Bien vamos a detener hasta aquí este vídeo y en el siguiente vídeo vamos a ver los constructores que
reciben argumentos nos vemos en el siguiente vídeo.
Saludos.