1
00:00:10,670 --> 00:00:13,950
Hola te saluda nuevamente Ubaldo Acosta.

2
00:00:14,120 --> 00:00:16,550
Espero que estén listos para continuar con esta lección.

3
00:00:17,480 --> 00:00:22,630
A continuación vamos a estudiar el tema de la palabra Diz en Java están listos.

4
00:00:22,630 --> 00:00:23,010
Vamos

5
00:00:26,310 --> 00:00:36,290
palabra Diz en Java la palabra Diz es una referencia implícita al objeto que se está ejecutando es útil

6
00:00:36,380 --> 00:00:41,480
para evitar la ambigüedad entre las variables de clase y las variables locales.

7
00:00:41,480 --> 00:00:49,130
También permite a un objeto enviarse el mismo como parámetro como hemos visto la palabra Diz nos permite

8
00:00:49,130 --> 00:00:52,550
acceder al objeto que está ejecutándose actualmente.

9
00:00:52,790 --> 00:00:58,510
Sin embargo vamos a dedicar algunos minutos más a este tema para comentar algunos detalles más.

10
00:00:58,670 --> 00:01:05,030
La palabra Diz es un operador y básicamente nos permite acceder al objeto que se está ejecutando en

11
00:01:05,030 --> 00:01:06,840
cualquier método Java.

12
00:01:06,920 --> 00:01:11,060
Sin embargo esto en un principio puede ser algo confuso.

13
00:01:11,060 --> 00:01:16,940
Tenemos dos tiempos en Java según hemos visto el tiempo de compilación que es cuando estamos creando

14
00:01:16,940 --> 00:01:23,120
nuestro código y el tiempo de ejecución que es cuando nuestro programa está en funcionamiento al momento

15
00:01:23,120 --> 00:01:24,460
de crear nuestro código.

16
00:01:24,500 --> 00:01:30,740
Debemos tener presente que no se está ejecutando ningún código sin embargo en un futuro es precisamente

17
00:01:30,740 --> 00:01:35,130
lo que sucederá sobre todo cuando estamos creando nuestras clases Java.

18
00:01:35,150 --> 00:01:41,630
Por ello el operador dice tiene que pensar en términos de ejecución de nuestro código es decir cuando

19
00:01:41,630 --> 00:01:45,450
se crea un objeto de la clase que estamos codificando.

20
00:01:45,800 --> 00:01:51,830
El operador dice es único para cada objeto y siempre corresponderá al código del objeto que se esté

21
00:01:51,830 --> 00:01:53,330
ejecutando.

22
00:01:53,330 --> 00:01:59,630
Otra cosa importante de mencionar el operador DIS es que esta palabra únicamente se puede utilizar dentro

23
00:01:59,630 --> 00:02:03,080
de un objeto creado a partir de la clase aullaba.

24
00:02:03,110 --> 00:02:09,510
Más adelante veremos lo que significa el contexto estático pero podemos adelantar que la palabra Diz

25
00:02:09,710 --> 00:02:17,150
no se puede utilizar en un contexto estático ya que en el contexto estático aún no se han creado objetos

26
00:02:17,630 --> 00:02:23,950
y por lo tanto la palabra Diz no tiene utilidad si no se ha creado el objeto al cual debe apuntar.

27
00:02:26,130 --> 00:02:33,270
Uso de la palabra Diz en Java podemos observar en la figura que tenemos dos tiempos el tiempo de compilación

28
00:02:33,470 --> 00:02:35,400
que es cuando estamos creando nuestra clase

29
00:02:40,740 --> 00:02:46,560
y el tiempo de ejecución que es cuando se están creando nuestros objetos o se están ejecutando ya nuestro

30
00:02:46,560 --> 00:02:47,100
programa

31
00:02:51,050 --> 00:02:56,660
así que como podemos observar en el código uno de los usos más comunes de la palabra Diz es para evitar

32
00:02:56,750 --> 00:02:58,910
la ambigüedad entre los parámetros.

33
00:02:58,910 --> 00:03:06,820
Los argumentos de un método y los atributos de nuestra clase por medio del operador DIS es que vamos

34
00:03:06,820 --> 00:03:12,430
a acceder a los atributos de nuestra clase y si no estamos especificando el operador dice básicamente

35
00:03:12,430 --> 00:03:17,650
estamos haciendo referencia a la variable local o al parámetro de este método.

36
00:03:17,650 --> 00:03:23,260
Así que básicamente este constructor lo que está haciendo es recibir un argumento llamado nombre y este

37
00:03:23,260 --> 00:03:29,980
valor lo asigna al atributo de la clase y por ello es que para diferenciar el atributo de la clase de

38
00:03:30,040 --> 00:03:33,440
la variable local utilizamos el operador dis.

39
00:03:33,490 --> 00:03:39,070
De esta manera cuando mandamos a llamar el constructor de la clase se envía el argumento o el parámetro

40
00:03:39,070 --> 00:03:46,890
respectivo y posteriormente ese mismo valor de Juan se asigna al atributo de la clase así que uno de

41
00:03:46,890 --> 00:03:52,830
los usos más comunes de la palabra Diz como ya hemos comentado es evitar la ambigüedad entre los atributos

42
00:03:52,890 --> 00:03:57,510
de las clases y las variables locales o argumentos de un método.

43
00:03:57,510 --> 00:04:02,640
En este ejemplo podemos observar cómo estamos declarando una clase llamada persona la cual tiene un

44
00:04:02,640 --> 00:04:10,050
constructor que recibe un atributo llamado nombre el cual es idéntico al nombre del atributo de la clase.

45
00:04:10,050 --> 00:04:15,570
Para hacer la diferencia entre ambos nombres podemos utilizar la palabra diz la cual hace referencia

46
00:04:15,600 --> 00:04:22,560
al atributo de la clase y de esta manera podemos nombrar de manera idéntica los argumentos de un método

47
00:04:23,130 --> 00:04:29,610
y los atributos de nuestra clase y diferenciar estas dos variables por medio del operador dis.

48
00:04:29,610 --> 00:04:34,740
En la figura podemos observar el efecto de memoria que tiene la creación de estas variables así que

49
00:04:34,740 --> 00:04:36,300
observamos la variable P

50
00:04:39,610 --> 00:04:47,980
apunta al objeto persona pero también el operador dis al momento en que se crea el objeto de tipo persona.

51
00:04:47,990 --> 00:04:54,890
También apunta al mismo objeto una vez que termina de ejecutarse el constructor de la clase el operador

52
00:04:54,890 --> 00:05:01,910
dis apunta a otro objeto y si de nueva cuenta se vuelve a ejecutar algún método de la clase persona.

53
00:05:01,910 --> 00:05:08,660
El operador dis apuntará al objeto creado es decir que el operador dis siempre apuntará al objeto que

54
00:05:08,660 --> 00:05:10,920
se está ejecutando actualmente.

55
00:05:10,970 --> 00:05:18,320
Por ello de alguna manera es un apuntador al objeto actual el objeto que se está ejecutando en ese momento

56
00:05:18,740 --> 00:05:25,550
y de ahí la palabra Diz ya que apunta a este objeto al objeto que se está ejecutando en ese momento

57
00:05:27,390 --> 00:05:35,240
uso de la palabra Diz como referencia podemos observar en el código el uso de la palabra Diz como referencia

58
00:05:37,620 --> 00:05:43,530
por un lado estamos creando la clase palabra Diz y posteriormente la clase persona dentro del mismo

59
00:05:43,530 --> 00:05:49,520
archivo y también definimos otra clase llamada imprimir.

60
00:05:49,790 --> 00:05:54,420
En este ejemplo podemos observar a más detalle el uso de la palabra Diz.

61
00:05:54,470 --> 00:06:00,350
Estamos creando varias clases y varios objetos para que podamos observar cómo la palabra Diz va cambiando

62
00:06:00,350 --> 00:06:02,870
según el objeto actual que se está ejecutando.

63
00:06:03,820 --> 00:06:06,970
En la línea 3 creamos un objeto de tipo personal.

64
00:06:07,100 --> 00:06:13,880
Hasta este momento el apuntador Diz no ha sido creado ni apunta a ningún objeto es solo hasta que se

65
00:06:13,880 --> 00:06:14,400
ejecuta.

66
00:06:14,420 --> 00:06:21,770
Esta línea 3 que se crea el objeto de tipo Persona y entonces es que se crea el apuntador Diz y en este

67
00:06:21,770 --> 00:06:25,690
momento es que apunta al objeto persona recién creado.

68
00:06:25,730 --> 00:06:31,090
Sabemos que el paso inmediato en la creación de un objeto en Java es llamar al constructor de la clase.

69
00:06:31,190 --> 00:06:38,030
Por ello como siguiente paso se ejecuta la línea 10 en la cual recibimos en la variable local de tipo

70
00:06:38,120 --> 00:06:39,880
nombre el valor de Juan.

71
00:06:39,980 --> 00:06:45,590
Pero para poder diferenciar entre el argumento y el atributo de la clase utilizamos por primera vez

72
00:06:45,680 --> 00:06:47,020
la palabra Diz.

73
00:06:47,030 --> 00:06:52,880
De esta manera hacemos referencia al atributo de la clase y le estamos asignando el valor del argumento

74
00:06:52,880 --> 00:06:55,550
que estamos recibiendo en este argumento.

75
00:06:55,550 --> 00:07:03,730
Posteriormente creamos un nuevo objeto en este caso la clase imprimir y aquí en este momento es cuando

76
00:07:03,730 --> 00:07:10,150
estamos creando un nuevo objeto pero no es hasta que se ejecuta el método imprimir que el apuntador

77
00:07:10,150 --> 00:07:14,530
dice cambiará de apuntar al objeto persona al objeto imprimir

78
00:07:18,480 --> 00:07:24,420
así que en este momento cuando mandamos a llamar el método imprimir estamos utilizando de nueva cuenta

79
00:07:24,690 --> 00:07:31,950
el operador dice y esto básicamente lo que estamos haciendo es enviando una referencia del objeto al

80
00:07:31,950 --> 00:07:33,630
cual estaba apuntando.

81
00:07:33,630 --> 00:07:39,660
Recordemos que en este momento el operador dis está apuntando al objeto persona que se creó en este

82
00:07:39,660 --> 00:07:40,850
momento.

83
00:07:41,040 --> 00:07:47,010
Posteriormente al pasar esta referencia realmente lo que estamos haciendo en este momento es lo siguiente

84
00:07:47,010 --> 00:07:55,620
sería equivalente a lo siguiente Object Object igual a p que básicamente es la referencia del objeto

85
00:07:55,620 --> 00:08:02,280
persona le estamos asignando a la variable de tipo Object que se está creando en este momento y cuando

86
00:08:02,280 --> 00:08:09,030
mandamos a imprimir este parámetro se manda a llamar el objeto persona pero si mandamos a llamar el

87
00:08:09,030 --> 00:08:16,050
objeto actual en este caso el operador dis ya no va a imprimir el objeto persona sino que ahora estamos

88
00:08:16,140 --> 00:08:22,920
dentro de la clase imprimir y por lo tanto el objeto que imprime es el objeto de imprimir así que nuestra

89
00:08:22,920 --> 00:08:29,880
primera impresión dentro de este método fue el objeto o persona y posteriormente en este momento el

90
00:08:29,880 --> 00:08:35,790
operador dis ya cambió ya que estamos ya dentro de la clase a imprimir y por lo tanto lo que va a imprimir

91
00:08:35,940 --> 00:08:43,260
son valores del objeto imprimir así que en la línea 15 pasamos como parámetro el objeto persona actual

92
00:08:43,320 --> 00:08:51,130
utilizando la palabra Diz y cuando se discuta la línea 21 ocurren dos cosas importantes por un lado

93
00:08:51,190 --> 00:08:58,180
el operador dis deja de apuntar al objeto persona y el argumento que recibe el método imprimir es el

94
00:08:58,180 --> 00:09:05,320
objeto persona puesto que dice en la línea 15 a una apuntaba al objeto persona así que en este momento

95
00:09:05,320 --> 00:09:12,010
se recibe el objeto persona pero el operador dis ya cambia y ahora se está utilizando dentro de la clase

96
00:09:12,070 --> 00:09:13,240
imprimir.

97
00:09:13,240 --> 00:09:18,610
Cabe mencionar que todas las clases en Java heredan de la clase obvie y aunque esto lo veremos en otro

98
00:09:18,610 --> 00:09:25,000
tema a más detalle en la clase o bien nos sirve como una clase comodín para poder recibir cualquier

99
00:09:25,000 --> 00:09:27,250
tipo de Java como argumento.

100
00:09:27,250 --> 00:09:33,060
Por ello podemos utilizar el tipo Object para recibir como argumento cualquier objeto en Java.

101
00:09:33,220 --> 00:09:40,540
En este caso la variable Object creada en este momento nos sirve como una clase comodín para poder recibir

102
00:09:40,540 --> 00:09:47,140
cualquier tipo Java como argumento en este caso la variable obvia creada almacena la referencia de la

103
00:09:47,140 --> 00:09:54,340
clase persona creada anteriormente y cuya referencia fue enviada en la línea 15 por medio del apuntador

104
00:09:54,350 --> 00:10:01,270
dice Por ello en la línea 22 se imprime el objeto de tipo persona ya que estamos utilizando la variable

105
00:10:01,360 --> 00:10:09,790
obvie y en la línea 23 se imprime un objeto de tipo imprimir ya que recordemos que ahora está apuntando

106
00:10:09,820 --> 00:10:17,200
al objeto que se está ejecutando actualmente el cual es de tipo imprimir ese objeto se creó en este

107
00:10:17,200 --> 00:10:23,380
momento y posteriormente se está utilizando un método del objeto de tipo imprimir.

108
00:10:23,560 --> 00:10:30,000
Por ello es que en este momento estamos dentro de la ejecución de un método de la clase de tipo imprimir.

109
00:10:30,190 --> 00:10:35,680
Hay más cosas que podríamos hacer para mejorar este código sin embargo necesitamos más lecciones para

110
00:10:35,680 --> 00:10:37,330
poder mejorarlo.

111
00:10:37,330 --> 00:10:43,600
Por esta razón vamos a dejar lo más simple posible este código con el objetivo de entender cómo va cambiando

112
00:10:43,660 --> 00:10:50,290
el apuntador diez según la ejecución de nuestro código y a continuación vamos a crear algunos ejercicios

113
00:10:50,500 --> 00:10:53,350
para poner en práctica el uso del operador dis.
