1
00:00:10,240 --> 00:00:12,830
Hola Te saludo nuevamente Ubal lacosta.

2
00:00:13,330 --> 00:00:16,370
Espero que estén listos para comenzar con esta elección.

3
00:00:16,390 --> 00:00:21,540
A continuación vamos a estudiar el tema de la clase Object en Java que están listos.

4
00:00:21,540 --> 00:00:26,880
Vamos clase Object en Java en Java.

5
00:00:26,960 --> 00:00:34,150
Como hemos estudiado hasta el momento todas las clases heredan de la clase Object la clase Object es

6
00:00:34,150 --> 00:00:37,520
la clase raíz de todas las clases en Java.

7
00:00:37,690 --> 00:00:45,130
La clase Object se encuentra en el paquete Java punto Langa el cual es el paquete principal o Kor de

8
00:00:45,130 --> 00:00:52,450
Java y es por esta razón que no hay necesidad de hacer un import de las clases que pertenezcan al paquete

9
00:00:52,480 --> 00:00:54,420
Java punto language.

10
00:00:54,430 --> 00:00:57,910
De esta manera se simplifica el uso de este tipo de clases.

11
00:00:58,860 --> 00:01:05,570
Y por qué es tan importante la clase Object por qué todas las clases en Java heredan de manera directa

12
00:01:05,780 --> 00:01:08,400
o indirecta de la clase obvie.

13
00:01:08,510 --> 00:01:14,360
De esta manera el lenguaje Java puede estar seguro que compartirá al menos esto en común entre todas

14
00:01:14,360 --> 00:01:21,500
las clases Java y esto permite asegurar que cierta funcionalidad o características sea compartida entre

15
00:01:21,500 --> 00:01:28,330
todas las clases Java existen varios métodos muy importantes que estaremos utilizando constantemente

16
00:01:28,330 --> 00:01:35,080
de la clase obvien o dicho de otra manera estaremos describiendo estos métodos heredados en nuestras

17
00:01:35,080 --> 00:01:36,860
propias clases.

18
00:01:36,910 --> 00:01:42,030
Algunos de estos métodos son el método string y quals y Skout.

19
00:01:42,310 --> 00:01:50,770
Vamos a ver a más detalle cada uno de estos métodos método destruye todos los objetos en Java heredan

20
00:01:50,780 --> 00:01:58,440
de la clase obvia según hemos comentado ya sea de manera directa o indirecta de manera directa si no

21
00:01:58,440 --> 00:02:05,130
indican la palabra extent en la definición de su clase y de manera indirecta si heredan de otra clase

22
00:02:05,460 --> 00:02:12,730
debido a la jerarquía de clases por lo tanto se heredan los métodos definidos en la clase o bien cómo

23
00:02:12,730 --> 00:02:16,260
son los métodos destruí y su hija Scout.

24
00:02:16,450 --> 00:02:19,930
El método que vamos a ver a continuación es el método destruí.

25
00:02:20,440 --> 00:02:27,010
Este método nos sirve para que podamos mostrar una representación en texto de nuestras clases y al sobreescribir

26
00:02:27,010 --> 00:02:33,970
lo podemos fácilmente mandar a imprimir o mostrar el estado de un objeto en cualquier momento sino sobre

27
00:02:34,000 --> 00:02:34,570
escribimos.

28
00:02:34,570 --> 00:02:40,810
El método de nuestra clase lo que se mostrará en la consola será la referencia en memoria donde se ubica

29
00:02:40,900 --> 00:02:46,990
el objeto actual el cual se compone del nombre de la clase seguido de la dirección hexadecimal donde

30
00:02:46,990 --> 00:02:49,360
se encuentra en memoria el objeto.

31
00:02:49,360 --> 00:02:56,440
Sin embargo esto no nos dice mucho acerca del estado de nuestro objeto por Estado nos referimos a los

32
00:02:56,440 --> 00:03:00,470
valores actuales de cada atributo de nuestra clase.

33
00:03:00,490 --> 00:03:07,120
Debido a esto con el método texting tenemos la oportunidad de mostrar una cadena con el estado de nuestro

34
00:03:07,120 --> 00:03:13,960
objeto simplemente concatenando cada uno de los valores que nos interese mostrar de nuestro objeto casi

35
00:03:13,960 --> 00:03:20,020
siempre utilizaremos todos los atributos pero debemos tener cuidado en casos más complejos en los que

36
00:03:20,020 --> 00:03:27,400
atributos serán otros objetos o listas de otros objetos y debemos tener cuidado debido a que en estos

37
00:03:27,400 --> 00:03:33,880
casos podríamos generar problemas de recursividad o llamadas circulares a otros objetos.

38
00:03:33,880 --> 00:03:40,500
Podemos observar en el código mostrado un ejemplo del uso del método destruí es opcional agregar la

39
00:03:40,510 --> 00:03:47,710
notación arroba o Berriel la cual indica al compilador que estamos escribiendo el método string de la

40
00:03:47,710 --> 00:03:49,200
clase Object.

41
00:03:49,240 --> 00:03:53,980
Vemos que básicamente estamos concatenando los atributos de nuestra clase.

42
00:03:53,980 --> 00:03:59,350
Cabe mencionar que somos libres de modificar la cadena según nuestras necesidades.

43
00:03:59,350 --> 00:04:05,560
Por ejemplo vemos que estamos indicando el nombre de la clase y posteriormente concatenados cada uno

44
00:04:05,560 --> 00:04:12,220
de los atributos de nuestra clase y al final regresamos una sola cadena que representa el estado actual

45
00:04:12,220 --> 00:04:13,900
de nuestro objeto.

46
00:04:14,130 --> 00:04:20,730
Sin embargo podemos hacer los cambios que deseemos en esta cadena ya que precisamente la escritura nos

47
00:04:20,730 --> 00:04:27,030
da la libertad de agregar el código que deseemos siempre y cuando cumplamos con los requisitos del método

48
00:04:27,600 --> 00:04:29,410
que básicamente es regresar.

49
00:04:29,460 --> 00:04:37,680
Un tipo destruí método y es otro de los métodos que vamos a escribir con frecuencia en nuestras clases

50
00:04:37,980 --> 00:04:40,830
serán los métodos y las hijas scout.

51
00:04:40,920 --> 00:04:45,450
Estos métodos se utilizan para saber si dos objetos son iguales.

52
00:04:45,450 --> 00:04:51,540
Recordemos que si comparamos los objetos con el operador igual igual nos va a comparar las referencias

53
00:04:51,540 --> 00:04:55,650
de los objetos es decir la ubicación en memoria.

54
00:04:55,890 --> 00:05:02,160
De igual manera si no escribimos el método y es heredado de la clase agobien comparará la ubicación

55
00:05:02,160 --> 00:05:08,430
de memoria de los objetos en lugar de comparar el contenido de los objetos es decir cada uno de sus

56
00:05:08,430 --> 00:05:14,170
atributos esta comparación de las referencias en memoria no nos sirve.

57
00:05:14,280 --> 00:05:20,640
Si lo que queremos es comparar el contenido del objeto es decir los valores de los atributos de nuestros

58
00:05:20,640 --> 00:05:27,480
objetos y esto es lo que queremos comparar en la gran mayoría de las veces podemos observar el código

59
00:05:27,540 --> 00:05:34,470
en el cual estamos escribiendo el método y más dentro del método al cual podemos observar que lo que

60
00:05:34,470 --> 00:05:37,920
se compara es cada uno de los atributos de la clase.

61
00:05:38,010 --> 00:05:44,840
Primeramente revisando si el objeto recibido a comparar es del mismo tipo que la clase que estamos trabajando.

62
00:05:44,940 --> 00:05:50,830
Para ello utilizamos el operador Instant off según hemos estudiado anteriormente.

63
00:05:50,970 --> 00:05:57,640
Posteriormente comparamos cada uno de los atributos recibidos en el nuevo objeto y una vez que hemos

64
00:05:57,640 --> 00:06:03,700
comparado cada atributo podemos garantizar que el contenido de los objetos es igual al objeto recibido

65
00:06:04,330 --> 00:06:07,390
por lo que el método y regresa verdadero.

66
00:06:07,450 --> 00:06:10,000
De lo contrario regresarã falso.

67
00:06:10,270 --> 00:06:16,840
Este tipo de métodos se utiliza regularmente en algoritmos de ordenamiento debido a que necesitamos

68
00:06:16,840 --> 00:06:23,680
saber si un objeto es igual a otro y también podríamos comparar su contenido con el objetivo de ordenar

69
00:06:23,740 --> 00:06:25,090
objetos.

70
00:06:25,090 --> 00:06:31,330
Así que el tema de ordenamiento de objetos se apoyará directamente de este tipo de métodos para saber

71
00:06:31,420 --> 00:06:33,180
si un objeto es igual a otro.

72
00:06:36,420 --> 00:06:44,220
Método Scout cuando definimos un objeto y definimos el método y cuál debemos redefinir también el método

73
00:06:44,400 --> 00:06:45,240
scout.

74
00:06:45,240 --> 00:06:51,540
Si dos objetos son iguales según el método y cuál sea el valor retornado por sus respectivos Jacob debe

75
00:06:51,540 --> 00:06:53,340
de ser igual.

76
00:06:53,340 --> 00:06:58,080
Por defecto Scout devuelve un entero diferente para cada objeto.

77
00:06:58,080 --> 00:07:03,930
Su uso principal es la optimización de las colecciones basadas en Gasteiz Bols para el ordenamiento

78
00:07:03,930 --> 00:07:05,480
de sus elementos.

79
00:07:05,670 --> 00:07:12,120
Este tipo de colecciones las estudiaremos más adelante implementar estos métodos nos permite saber si

80
00:07:12,120 --> 00:07:19,470
dos objetos son iguales ya sea comparando el contenido de dos objetos por medio de los atributos utilizando

81
00:07:19,470 --> 00:07:27,470
el método ICASS o el número entero que representa al objeto mismo es decir el valor Jarkov.

82
00:07:27,480 --> 00:07:31,880
De esta manera garantizamos que dos objetos sean iguales entre más elaborado.

83
00:07:31,890 --> 00:07:38,430
El método Scout más se garantiza que no existan coincidencias entre los objetos a comparar.

84
00:07:38,430 --> 00:07:44,550
Cabe mencionar que la mayoría de los IDEs nos ayudan a generar los métodos que hemos visto en esta elección

85
00:07:44,910 --> 00:07:48,690
tanto los métodos Westling y las hijas scout.

86
00:07:48,690 --> 00:07:53,310
Sin embargo recomendamos su uso únicamente cuando ya es de nuestro conocimiento.

87
00:07:53,310 --> 00:08:01,110
Este tipo de conceptos así que podemos observar que el Método Scout básicamente genera un valor numérico

88
00:08:01,230 --> 00:08:06,540
utilizando los atributos de nuestra clase y cada uno de los atributos de nuestra clase.

89
00:08:06,570 --> 00:08:14,130
Podemos solicitarle a su vez su valor único es decir mandando a llamar su propio Método Scout y se utilizan

90
00:08:14,160 --> 00:08:20,190
algunos valores numéricos como puede ser la multiplicación de algún número como base o algún número

91
00:08:20,190 --> 00:08:27,120
base de corrimiento y así podamos obtener un valor entero único para cada uno de nuestros objetos.

92
00:08:27,120 --> 00:08:33,390
El valor numérico por ejemplo en este caso que podemos observar de igual a 7 o la multiplicación por

93
00:08:33,390 --> 00:08:36,210
el valor de 31 es arbitrario.

94
00:08:36,210 --> 00:08:41,790
Cualquier combinación de valores que utilicemos es correcta ya que lo único que estamos buscando es

95
00:08:41,850 --> 00:08:48,300
un valor entero único utilizando en combinación el caso de nuestros atributos.

96
00:08:48,300 --> 00:08:55,110
Así que observamos que en combinación con estos valores de 7 y 31 también estamos utilizando los atributos

97
00:08:55,110 --> 00:09:02,170
de nuestra clase y a cada uno de estos atributos también estamos obteniendo el valor Jarkov respectivo.

98
00:09:02,280 --> 00:09:08,880
Así que en resumen cuando agreguemos el método ICAS también debemos sobreescribir el método Scout y

99
00:09:08,880 --> 00:09:09,930
el método scout.

100
00:09:10,110 --> 00:09:16,290
Básicamente lo que va a hacer es generar un valor entero único utilizando los atributos de nuestra clase

101
00:09:16,560 --> 00:09:23,790
y algunos otros valores para garantizar que estamos obteniendo un valor entero único para este objeto.
