Bien vamos a continuar ahora con el tema de constructores pero recibiendo argumentos vamos a definir
el siguiente código vamos a definir ahora un constructor pero que reciba los argumentos para poder inicializar
los atributos de nuestra clase.
Vamos a ver cómo hacer esto.
Definimos un constructor de tipo público para que podamos acceder desde otras clases.
Se va a llamar también aritmética recordemos que debe de llamarse exactamente igual al nombre de la
clase no regresa ningún tipo de valor y este constructor va a recibir dos argumentos no va a ser vació
sino que vamos a recibir el argumento 1 y posteriormente el argumento 2 abrimos el cuerpo de nuestro
constructor y lo que vamos a hacer con esos argumentos que estamos recibiendo es inicializar los valores
de los atributos de nuestra clase así que vamos a hacer esto.
Inicializar los valores de los atributos de nuestra clase primero inicializar el atributo AAM y le asignamos
el valor del argumento a uno posteriormente inicializar el valor de los atributos de y le asignamos.
El segundo argumento así que cuando mandamos a llamar este constructor va a recibir estos valores.
En estas variables en esos argumentos y este valor se le va a asignar al atributo de nuestra clase los
atributos que hemos definido en nuestra clase.
Así es como va a funcionar esta asignación de valores vamos a guardar cambios y antes de continuar vamos
a comentar el detalle del constructor vacío.
Hemos comentado que el constructor vació se agrega de manera automática así que si no tenemos ningún
constructor en nuestra clase esto quiere decir que el compilador en automático agrega el constructor
vació obviamente no lo agrega con ningún código y por lo tanto tampoco inicializar ningún atributo de
nuestra clase.
únicamente este constructor vació lo agrega el compilador para poder reservar espacio en memoria pero
no va a realizar ningún otro código como es la inicialización de variables.
Pero si nosotros agregamos un constructor diferente vació como en este caso un constructor que recibe
dos argumentos entonces el compilador ya no va a agregar en automático el constructor vació.
Por lo tanto nosotros somos responsables de agregarlo y por ejemplo si lo quitamos lo voy a quitar el
constructor vació guardo cambios y vamos a nuestra clase de prueba.
Podemos observar que en este caso ya nos está marcando un error ya que el compilador como detecta un
constructor con argumentos entonces nos indica que debemos de proporcionar los argumentos o por otro
lado tendríamos que agregar el constructor vació por nuestra cuenta ya que el compilador ya no lo va
a agregar por nosotros así que simplemente quería hacer este comentario ya que esto es algo muy importante
cuando estamos iniciando con Java debemos de tener muy claro el uso de constructores sobre todo que
tenemos un constructor vacío por default siempre y cuando no agreguemos un constructor con diferentes
argumentos así que vamos a regresar a nuestra clase y volvemos a declarar nuestro constructor vacío
y podemos observar que ya funciona correctamente nuestra clase viene ahora.
Otro de los propósitos de utilizar un constructor con argumentos es que no hagamos este tipo de código
fuera de la construcción del objeto sino dentro de la construcción del objeto vamos a crear un segundo
objeto para que veamos esto
vamos a declarar otra variable de tipo aritmética que se va a llamar aritmética 2 y esta variable va
a apuntar a un nuevo objeto que se va a crear para estos que utilizamos la palabra reservada.
Posteriormente utilizamos uno de los constructores de nuestra clase aritmética y en este caso como ya
tenemos dos constructores podemos escoger entre utilizar el constructor vació o utilizar el constructor
con dos argumentos.
Ahora para qué utilizamos estos constructores con argumentos los utilizamos para inicializar los atributos
de nuestra clase desde el momento de la creación del objeto y no hacer esto es asignar valores posteriormente
a la creación del objeto en Java.
Es común que asignemos los valores desde el momento de la creación del objeto y si bien es posible modificar
estos valores después de que creamos el objeto.
Lo común es que muchas veces vamos a utilizar el constructor para asignar valores desde el momento de
la creación del objeto así que esa es una de las razones por las cuales utilizamos diferentes constructores
incluyendo el paso de argumentos a los constructores.
Así que vamos a proporcionar los valores los argumentos utilizando la llamada al constructor de dos
argumentos vamos a pasar los valores de 4 y 2 respectivamente.
Esto quiere decir que el valor de 4 se va a asignar al atributo a de nuestra clase y el valor de dos
ya que es el segundo argumento se va a asignar al atributo de nuestra clase y por lo tanto conoce manda
llamar el método sumar va a utilizar estos valores los atributos de nuestra clase para realizar esta
suma y finalmente regresar el resultado.
Con esto ya estamos creando nuestro objeto y a su vez estamos inicializar los atributos de nuestra clase.
Vamos a imprimir la llamada a este método este va a ser el segundo resultado y utilizamos ahora nuestra
variable aritmética 2 para mandar a llamar el método sumar así que utilizamos nuestra variable aritmética
2 y mandamos a llamar el método sumar.
Podemos observar que nos podemos ahorrar la línea de código donde estamos mandando llamar el método
sumar y lo asignamos a una variable si no necesitamos asignar este resultado de mandar a llamar el método
sumar a una variable entonces podemos mandar a llamar directamente el método sumar y el resultado de
mandar a llamar.
Este método se va a imprimir directamente a consola así que guardamos cambios ejecutamos
y podemos llevar el segundo resultado no se imprime el valor de 6 ya que se realizó la suma de 4 más
dos vamos a agregar un comentario más dentro de nuestro constructor con dos argumentos para que sepamos
que se está ejecutando este constructor así que ponemos el mensaje
ejecutando constructor con dos argumentos guardamos cambios y ejecutamos y podemos observar que primero
se mandó llamar el mensaje ejecutando constructor vació y se imprime el valor de 13 y posteriormente
nos manda el mensaje ejecutando constructor con dos argumentos se inicializar nuestro objeto y finalmente
el resultado de la suma es igual a 6.
Vamos a ejecutar paso a paso esta llamada para que si queda alguna duda podamos disipar.
Al momento de ejecutar este ejercicio.
Paso a paso.
Así que ponemos nuestro punto de ruptura en esta línea de código y posteriormente damos clic en de Buffalo
bien para entrar al detalle de la llamada.
A este constructor con dos argumentos presionamos F7 o step into así que ya estamos dentro de la llamada
a nuestro método aritmética.
En este momento no debemos de presionar nuevamente F7 ya que F7 sería para meternos todavía al detalle
de la creación de este objeto y eso todavía no lo hemos comentado ya que para entender la creación completa
de un objeto en Java debemos estudiar el concepto de herencia y esto lo vamos a ver a detalle más adelante.
Pero lo que sí podemos estudiar en este momento y tener claro es que si presionamos F8 entonces se inicializar
los argumentos de la llamada a nuestro constructor con estos dos argumentos los valores de 4 y 2 y posteriormente
cada uno de estos valores se asigna el argumento uno se asigna a nuestro atributo a y el argumento 2
el valor de 2 se le asigna al atributo.
Así que presionamos F8 y podemos observar que ahora la variable A contiene el valor de 4 y la variable
que contiene el valor de 2.
Y finalmente si vamos a consola ejecutamos esta línea con F8 y podemos observar el mensaje ejecutando
constructor con dos argumentos.
Esto quiere decir que cuando se manda llamar este método de sumar entonces la suma la va a realizar
con los valores que le hemos asignado a los atributos de nuestra clase.
Bien vamos a presionar F8 y con esto ya se ha creado nuestro objeto aritmética con los valores de 4
y 2 recordemos que cada vez que mandamos a llamar la palabra reservada no se crea un nuevo objeto y
cada objeto contiene sus valores por separado así que estos valores que se creó del objeto 1 los valores
no se mezclan con este segundo objeto que estamos declarando así en cada uno de estos objetos contiene
sus propios valores presionamos de nueva cuenta F8 y finalmente para ejecutar esta línea presionamos
F8 ya no nos vamos a meter al detalle del método sumar ya que ya lo hemos analizado y de momento como
estamos dentro de la llamada a otro método tampoco le recomendamos presionar F7 ya que en lugar de irnos
a sumar nos vamos a ir al detalle del método LNA y eso es parte de las librerías de Java así que de
momento no vamos a analizar este método así que presionamos F8 y podemos observar en la salida el resultado
de ejecutar la suma fue la suma de los valores de los atributos a un valor de 4 más el valor de Becca
es igual a dos.
Por lo tanto el resultado es igual a 6 bien así que con esto hemos terminado de analizar presionamos
F8 y termina la ejecución de nuestro programa quitamos el punto de ruptura y con esto hemos terminado
también de analizar la creación de un objeto pero ahora utilizando dos argumentos bien así que eso es
todo por esta lección de manejo de constructores en IAVA nos vemos en el siguiente vídeo.
Saludos.