Hola te saluda nuevamente Ubaldo Acosta.
Espero que estén listos para continuar con esta lección.
A continuación vamos a estudiar el tema de la palabra Diz en Java están listos.
Vamos
palabra Diz en Java la palabra Diz es una referencia implícita al objeto que se está ejecutando es útil
para evitar la ambigüedad entre las variables de clase y las variables locales.
También permite a un objeto enviarse el mismo como parámetro como hemos visto la palabra Diz nos permite
acceder al objeto que está ejecutándose actualmente.
Sin embargo vamos a dedicar algunos minutos más a este tema para comentar algunos detalles más.
La palabra Diz es un operador y básicamente nos permite acceder al objeto que se está ejecutando en
cualquier método Java.
Sin embargo esto en un principio puede ser algo confuso.
Tenemos dos tiempos en Java según hemos visto el tiempo de compilación que es cuando estamos creando
nuestro código y el tiempo de ejecución que es cuando nuestro programa está en funcionamiento al momento
de crear nuestro código.
Debemos tener presente que no se está ejecutando ningún código sin embargo en un futuro es precisamente
lo que sucederá sobre todo cuando estamos creando nuestras clases Java.
Por ello el operador dice tiene que pensar en términos de ejecución de nuestro código es decir cuando
se crea un objeto de la clase que estamos codificando.
El operador dice es único para cada objeto y siempre corresponderá al código del objeto que se esté
ejecutando.
Otra cosa importante de mencionar el operador DIS es que esta palabra únicamente se puede utilizar dentro
de un objeto creado a partir de la clase aullaba.
Más adelante veremos lo que significa el contexto estático pero podemos adelantar que la palabra Diz
no se puede utilizar en un contexto estático ya que en el contexto estático aún no se han creado objetos
y por lo tanto la palabra Diz no tiene utilidad si no se ha creado el objeto al cual debe apuntar.
Uso de la palabra Diz en Java podemos observar en la figura que tenemos dos tiempos el tiempo de compilación
que es cuando estamos creando nuestra clase
y el tiempo de ejecución que es cuando se están creando nuestros objetos o se están ejecutando ya nuestro
programa
así que como podemos observar en el código uno de los usos más comunes de la palabra Diz es para evitar
la ambigüedad entre los parámetros.
Los argumentos de un método y los atributos de nuestra clase por medio del operador DIS es que vamos
a acceder a los atributos de nuestra clase y si no estamos especificando el operador dice básicamente
estamos haciendo referencia a la variable local o al parámetro de este método.
Así que básicamente este constructor lo que está haciendo es recibir un argumento llamado nombre y este
valor lo asigna al atributo de la clase y por ello es que para diferenciar el atributo de la clase de
la variable local utilizamos el operador dis.
De esta manera cuando mandamos a llamar el constructor de la clase se envía el argumento o el parámetro
respectivo y posteriormente ese mismo valor de Juan se asigna al atributo de la clase así que uno de
los usos más comunes de la palabra Diz como ya hemos comentado es evitar la ambigüedad entre los atributos
de las clases y las variables locales o argumentos de un método.
En este ejemplo podemos observar cómo estamos declarando una clase llamada persona la cual tiene un
constructor que recibe un atributo llamado nombre el cual es idéntico al nombre del atributo de la clase.
Para hacer la diferencia entre ambos nombres podemos utilizar la palabra diz la cual hace referencia
al atributo de la clase y de esta manera podemos nombrar de manera idéntica los argumentos de un método
y los atributos de nuestra clase y diferenciar estas dos variables por medio del operador dis.
En la figura podemos observar el efecto de memoria que tiene la creación de estas variables así que
observamos la variable P
apunta al objeto persona pero también el operador dis al momento en que se crea el objeto de tipo persona.
También apunta al mismo objeto una vez que termina de ejecutarse el constructor de la clase el operador
dis apunta a otro objeto y si de nueva cuenta se vuelve a ejecutar algún método de la clase persona.
El operador dis apuntará al objeto creado es decir que el operador dis siempre apuntará al objeto que
se está ejecutando actualmente.
Por ello de alguna manera es un apuntador al objeto actual el objeto que se está ejecutando en ese momento
y de ahí la palabra Diz ya que apunta a este objeto al objeto que se está ejecutando en ese momento
uso de la palabra Diz como referencia podemos observar en el código el uso de la palabra Diz como referencia
por un lado estamos creando la clase palabra Diz y posteriormente la clase persona dentro del mismo
archivo y también definimos otra clase llamada imprimir.
En este ejemplo podemos observar a más detalle el uso de la palabra Diz.
Estamos creando varias clases y varios objetos para que podamos observar cómo la palabra Diz va cambiando
según el objeto actual que se está ejecutando.
En la línea 3 creamos un objeto de tipo personal.
Hasta este momento el apuntador Diz no ha sido creado ni apunta a ningún objeto es solo hasta que se
ejecuta.
Esta línea 3 que se crea el objeto de tipo Persona y entonces es que se crea el apuntador Diz y en este
momento es que apunta al objeto persona recién creado.
Sabemos que el paso inmediato en la creación de un objeto en Java es llamar al constructor de la clase.
Por ello como siguiente paso se ejecuta la línea 10 en la cual recibimos en la variable local de tipo
nombre el valor de Juan.
Pero para poder diferenciar entre el argumento y el atributo de la clase utilizamos por primera vez
la palabra Diz.
De esta manera hacemos referencia al atributo de la clase y le estamos asignando el valor del argumento
que estamos recibiendo en este argumento.
Posteriormente creamos un nuevo objeto en este caso la clase imprimir y aquí en este momento es cuando
estamos creando un nuevo objeto pero no es hasta que se ejecuta el método imprimir que el apuntador
dice cambiará de apuntar al objeto persona al objeto imprimir
así que en este momento cuando mandamos a llamar el método imprimir estamos utilizando de nueva cuenta
el operador dice y esto básicamente lo que estamos haciendo es enviando una referencia del objeto al
cual estaba apuntando.
Recordemos que en este momento el operador dis está apuntando al objeto persona que se creó en este
momento.
Posteriormente al pasar esta referencia realmente lo que estamos haciendo en este momento es lo siguiente
sería equivalente a lo siguiente Object Object igual a p que básicamente es la referencia del objeto
persona le estamos asignando a la variable de tipo Object que se está creando en este momento y cuando
mandamos a imprimir este parámetro se manda a llamar el objeto persona pero si mandamos a llamar el
objeto actual en este caso el operador dis ya no va a imprimir el objeto persona sino que ahora estamos
dentro de la clase imprimir y por lo tanto el objeto que imprime es el objeto de imprimir así que nuestra
primera impresión dentro de este método fue el objeto o persona y posteriormente en este momento el
operador dis ya cambió ya que estamos ya dentro de la clase a imprimir y por lo tanto lo que va a imprimir
son valores del objeto imprimir así que en la línea 15 pasamos como parámetro el objeto persona actual
utilizando la palabra Diz y cuando se discuta la línea 21 ocurren dos cosas importantes por un lado
el operador dis deja de apuntar al objeto persona y el argumento que recibe el método imprimir es el
objeto persona puesto que dice en la línea 15 a una apuntaba al objeto persona así que en este momento
se recibe el objeto persona pero el operador dis ya cambia y ahora se está utilizando dentro de la clase
imprimir.
Cabe mencionar que todas las clases en Java heredan de la clase obvie y aunque esto lo veremos en otro
tema a más detalle en la clase o bien nos sirve como una clase comodín para poder recibir cualquier
tipo de Java como argumento.
Por ello podemos utilizar el tipo Object para recibir como argumento cualquier objeto en Java.
En este caso la variable Object creada en este momento nos sirve como una clase comodín para poder recibir
cualquier tipo Java como argumento en este caso la variable obvia creada almacena la referencia de la
clase persona creada anteriormente y cuya referencia fue enviada en la línea 15 por medio del apuntador
dice Por ello en la línea 22 se imprime el objeto de tipo persona ya que estamos utilizando la variable
obvie y en la línea 23 se imprime un objeto de tipo imprimir ya que recordemos que ahora está apuntando
al objeto que se está ejecutando actualmente el cual es de tipo imprimir ese objeto se creó en este
momento y posteriormente se está utilizando un método del objeto de tipo imprimir.
Por ello es que en este momento estamos dentro de la ejecución de un método de la clase de tipo imprimir.
Hay más cosas que podríamos hacer para mejorar este código sin embargo necesitamos más lecciones para
poder mejorarlo.
Por esta razón vamos a dejar lo más simple posible este código con el objetivo de entender cómo va cambiando
el apuntador diez según la ejecución de nuestro código y a continuación vamos a crear algunos ejercicios
para poner en práctica el uso del operador dis.