1
00:00:00,210 --> 00:00:00,830
Continuamos.

2
00:00:00,960 --> 00:00:04,050
Pero primero vamos a arreglar un error que cometí la clase anterior.

3
00:00:04,170 --> 00:00:08,070
La verdad es que no me di cuenta, pero si nos vamos a camión en el IF.

4
00:00:08,250 --> 00:00:10,590
Pero en vez colocar menor, puse mayor.

5
00:00:10,710 --> 00:00:14,820
Por alguna razón acá, entonces en vez de mayor tiene que ser al revés.

6
00:00:15,630 --> 00:00:16,710
De hecho, cree que lo dije?

7
00:00:16,770 --> 00:00:19,620
Creo que dije que tenía el menor, pero por alguna razón.

8
00:00:19,650 --> 00:00:21,660
Bueno, dije menor, propuse mayor.

9
00:00:21,730 --> 00:00:23,270
En fin, un error yeta.

10
00:00:23,410 --> 00:00:25,440
Así que si, claro, porque tiene que ser menor.

11
00:00:25,530 --> 00:00:30,750
Es decir, mientras sea menor que el máximo, mientras no llegue al límite, podemos ir agregando eventos.

12
00:00:30,840 --> 00:00:31,500
Así que está bien.

13
00:00:31,590 --> 00:00:34,410
De lo contrario lanzamos la excepción.

14
00:00:34,590 --> 00:00:35,880
Pero cuál sería el siguiente paso?

15
00:00:36,030 --> 00:00:38,830
Bueno, vamos a crear la clase con el método Main.

16
00:00:38,970 --> 00:00:40,200
Nuestra clase ejemplo.

17
00:00:41,070 --> 00:00:46,680
Entonces acá en generic class por acá nuestra clase de ejemplo.

18
00:00:47,970 --> 00:00:51,800
Ejemplo genericos ok.

19
00:00:53,310 --> 00:00:53,780
Listo.

20
00:00:54,360 --> 00:00:55,170
Método Main.

21
00:00:57,470 --> 00:00:58,340
Y comenzamos.

22
00:00:58,520 --> 00:01:06,670
Bueno, tenemos que crear la instancia camión, entonces camión, transporte o camión igual new camión.

23
00:01:08,770 --> 00:01:14,380
Ya por constructor tenemos que pasar el límite, es decir, cuántos elementos, por ejemplo, vamos

24
00:01:14,380 --> 00:01:21,700
a colocar unos cinco, cinco elementos y este transporte va a ser, por ejemplo, de caballos de animales.

25
00:01:21,880 --> 00:01:25,390
12 transporte, caballos.

26
00:01:26,450 --> 00:01:28,640
Vamos a agregar caballos entonces?

27
00:01:29,000 --> 00:01:30,860
Entonces transporte caballos.

28
00:01:30,980 --> 00:01:38,710
Punto A. Se fijan maneja el tipo más genérico ese de la clase padre que sería objeto la clase padre

29
00:01:38,720 --> 00:01:45,140
crean todos los objetos se fijan y bueno, nos va a obligar a realizar el gasto, claro, porque lo

30
00:01:45,140 --> 00:01:50,500
guardamos de un tipo genérico y después los obtenemos del tipo документы, del tipo genérico, entonces

31
00:01:50,500 --> 00:01:50,900
entremetido.

32
00:01:50,900 --> 00:01:55,190
Después volver a convertir, por ejemplo, el caballo de objeto al tipo caballo.

33
00:01:55,280 --> 00:01:58,940
Y así lo mismo con automóvil, con maquinaria.

34
00:01:58,970 --> 00:02:04,420
Se fijan y no estamos utilizando todo el potencial de los tipos en yaba de los generics.

35
00:02:04,520 --> 00:02:09,170
Pero lo importante primero hacerlo de esta forma para visualizar la ventaja.

36
00:02:09,380 --> 00:02:12,230
Entonces agregamos new animal.

37
00:02:14,000 --> 00:02:18,830
Bien, el animal recibía el nombre, el animal y el tipo el nombre bueno, un nombre cualquiera que

38
00:02:18,830 --> 00:02:20,240
le quiera dar a su animal.

39
00:02:20,270 --> 00:02:24,080
Por ejemplo, un caballo se podría llamar peregrino.

40
00:02:26,980 --> 00:02:33,340
Y el tipo caballo lo puso el tipo String para simplificar, pero también podría ser una clase, una

41
00:02:33,340 --> 00:02:39,910
clase hija, por ejemplo, que herede de animal una alternativa o mejor un numerador, un enum, seleccionar

42
00:02:39,910 --> 00:02:46,870
los tipo animales, por ejemplo caballo, ovejas, vacas, en fin, transportar cualquier tipo de animal.

43
00:02:46,990 --> 00:02:51,550
Claro, también podríamos dejar nuestra clase animal mucho más robusta, no solamente con el nombre,

44
00:02:51,670 --> 00:02:54,160
con el tipo, sino también con la familia, con la especie.

45
00:02:54,250 --> 00:02:59,410
Por ejemplo, el caballo es de la familia de los seguidos, pero también es un mamífero.

46
00:02:59,500 --> 00:03:01,420
Entonces, claro, se puede, pueden ser mucho más.

47
00:03:01,480 --> 00:03:06,070
Pero nuestra idea no es eso, sino más bien ver el tema de los genéricos.

48
00:03:06,820 --> 00:03:14,500
Entonces también transporte, punto add new animal y también otro caballo, claro.

49
00:03:14,560 --> 00:03:19,980
Podemos mezclar diferentes tipos animales, pero por lo general cuando se transporta algo siempre es

50
00:03:19,990 --> 00:03:27,070
del mismo tipo transportamos caballos o porcinos o vacas, y lo mismo cuando transportamos automóviles

51
00:03:27,070 --> 00:03:28,690
o solamente un tipo automóvil.

52
00:03:28,870 --> 00:03:33,700
No es que estemos transportando automóviles por un lado o maquinaria por otro.

53
00:03:33,730 --> 00:03:34,630
Todo en el mismo camión.

54
00:03:34,670 --> 00:03:37,690
No, por general no hace por lo general siempre daymo tipo.

55
00:03:37,780 --> 00:03:43,270
Por eso vamos a implementar nuestro ejemplo con un camión para cada tipo de cosa que queramos transportar.

56
00:03:43,360 --> 00:03:45,820
Entonces, en este caso caballos, solamente caballos.

57
00:03:47,200 --> 00:03:51,260
Grillo, otro caballo se fija en caballo.

58
00:03:51,580 --> 00:03:52,180
Entonces, de repente.

59
00:03:52,180 --> 00:03:54,610
Por eso es mucho mejor usar un enum.

60
00:03:54,850 --> 00:03:56,800
Porque no pudieron equivocar.

61
00:03:56,890 --> 00:04:01,000
Por ejemplo, acá colocar caballo, acá caballo es distinto.

62
00:04:01,090 --> 00:04:08,020
Mientras que con un en un qué mucho más estricto en nombre del caballo mucho más centralizado también

63
00:04:08,230 --> 00:04:09,550
y parametrizar los nombre.

64
00:04:09,850 --> 00:04:12,130
Pero bueno, para el ejemplo de tal forma.

65
00:04:13,690 --> 00:04:15,610
Transporte junto a

66
00:04:20,080 --> 00:04:21,730
otro caballo, Tonkin.

67
00:04:30,420 --> 00:04:31,830
Por ejemplo, tovo Kalma.

68
00:04:37,110 --> 00:04:37,950
Ya llevamos cuatro.

69
00:04:38,070 --> 00:04:38,760
El último.

70
00:04:39,800 --> 00:04:42,200
A New Animal.

71
00:04:44,010 --> 00:04:47,520
Y cualquier nombre, por ejemplo, el lonco toma.

72
00:04:51,320 --> 00:04:52,820
Ahí tenemos el transporte.

73
00:04:52,910 --> 00:04:55,760
Ahora quiero iterar y mostrar el nombre de Toqueis.

74
00:04:55,820 --> 00:04:58,970
Entonces, por ejemplo, Dunford, se fijan de qué tipo es?

75
00:04:59,090 --> 00:04:59,810
Revisemos.

76
00:05:02,070 --> 00:05:08,970
Acá en el iterador, bueno, acá retornan y teratoma se fijan, acá podemos iterar, pero lo que contiene

77
00:05:08,970 --> 00:05:12,870
este iterador son objetos del tipo genético, del tipo objeto.

78
00:05:14,260 --> 00:05:21,430
Por ejemplo, si quisiera colocar, por ejemplo, caballos o animal, en realidad animal a de animal

79
00:05:21,580 --> 00:05:27,220
o C de caballo de lo mismo, acá simplemente transporte, claro, porque recuerden que puedo iterar

80
00:05:27,430 --> 00:05:30,910
es dable camión porque implementa la interfaz, pero que me marca un error.

81
00:05:31,000 --> 00:05:34,630
Se fijan porque requiere el tipo Hoggett y prohibiÃ en un tipo animal.

82
00:05:34,690 --> 00:05:40,870
Entonces no puedo utilizar se fijan, no puedo utilizar un animal si por dentro está utilizando y manejando

83
00:05:41,020 --> 00:05:43,150
esto de forma genérica con el tipo Hoggett.

84
00:05:43,370 --> 00:05:48,700
Bueno, acá un paréntesis por utilizar tipo object, es decir, de hecho en la clase camión por utilizar

85
00:05:48,760 --> 00:05:54,490
un tipo Hoggett o bien podría haber utilizado una clase padre, por ejemplo, que reúna a todos los

86
00:05:54,490 --> 00:05:59,920
tipos de objeto en una jerarquía animales, automóviles, camión se fijen, pero no la idea, porque

87
00:05:59,920 --> 00:06:05,020
en realidad son distinto tipo un animal, no tienen un automóvil ni tampoco con maquinaria.

88
00:06:05,080 --> 00:06:10,630
Entonces por eso mejor utilizar ответы, o sea, que todos se relacionen mediante una interfaz, es

89
00:06:10,630 --> 00:06:16,690
decir, que todos sean transportable y tener la interfaz transportable independiente si tiene o no métodos,

90
00:06:16,750 --> 00:06:19,570
quizá puede ser una interfaz solamente para el tipo.

91
00:06:19,840 --> 00:06:25,210
Se fijan, entonces acá podría ser transportable y toda esta clase implementan transportable.

92
00:06:25,360 --> 00:06:28,720
Pero bien para el ejemplo esto lo mismo utilizamos object.

93
00:06:29,560 --> 00:06:33,370
Acá estamos obligados a ser el cast, por ejemplo Shout.

94
00:06:34,590 --> 00:06:40,530
Bueno, ya sabemos que es objeto, no puede ser del tipo animal, pero si quieren imprimir, por ejemplo

95
00:06:40,650 --> 00:06:48,420
a punto guet, no tengo los métodos, no tengo un método, por ejemplo del animal, el tipo, el nombre

96
00:06:48,510 --> 00:06:50,450
no lo puedo mostrar salvo que haga el cast.

97
00:06:50,880 --> 00:06:53,250
Entonces tendría que hacer el cast.

98
00:06:54,150 --> 00:06:58,890
Lo podríamos hacer acá, por ejemplo, animal, voy hacer un cambio.

99
00:06:58,980 --> 00:07:11,940
Acabo de colocar o de object yaca a de animal sé cacería a igual el cast animal del ответы s ahora que

100
00:07:11,940 --> 00:07:16,560
hice el cast doggett animal, ahora sí que tengo la inquietud nombre.

101
00:07:17,640 --> 00:07:18,480
No es cierto.

102
00:07:19,200 --> 00:07:19,860
Y el tipo?

103
00:07:24,040 --> 00:07:24,670
A este quesí.

104
00:07:29,560 --> 00:07:33,010
Tengo peregrino, tipo caballo, grillo y así con cada uno.

105
00:07:33,990 --> 00:07:37,620
Se fijan bueno, y también podría crear implementaciones objetos.

106
00:07:37,710 --> 00:07:40,950
Un camión también para transportar automóviles y maquinaria.

107
00:07:41,520 --> 00:07:42,270
Veamos el ejemplo.

108
00:07:44,360 --> 00:07:54,980
Otro camión vamos a transportar maquinaria entonces trans máquinas igual new camión solamente 3 por

109
00:07:54,980 --> 00:08:00,560
ejemplo, este camión solamente puede transportar 3 maquinaria pesada, entonces cada trans maquinarias

110
00:08:00,860 --> 00:08:09,230
máquinas punto add new maquinaria del tipo string un solo atributo se acuerdan?

111
00:08:09,320 --> 00:08:11,090
Por ejemplo un bulldozer.

112
00:08:18,610 --> 00:08:19,780
Una grúa horquilla.

113
00:08:22,630 --> 00:08:23,200
Uno más.

114
00:08:23,560 --> 00:08:27,060
Trans juntoa new.

115
00:08:30,440 --> 00:08:31,410
Una perforadora?

116
00:08:31,580 --> 00:08:32,030
Listo.

117
00:08:32,180 --> 00:08:43,970
Y también algo muy parecido con el Ford objeto o de qué genérico tras máquinas a cacería maquinaria

118
00:08:44,420 --> 00:08:49,520
M Igual hacemos el cast de maquinaria de.

119
00:08:52,130 --> 00:08:52,390
M?

120
00:08:52,830 --> 00:08:53,790
Punto.

121
00:08:54,000 --> 00:08:55,350
Qué tipo Gilito?

122
00:08:56,790 --> 00:08:57,660
Vamos a imprimir.

123
00:09:00,140 --> 00:09:01,220
Te fijan Eita?

124
00:09:02,310 --> 00:09:03,400
Y lo mismo con automóvil.

125
00:09:04,590 --> 00:09:07,120
Otro camión trans.

126
00:09:07,230 --> 00:09:11,100
Auto igual new camión.

127
00:09:14,240 --> 00:09:23,510
También 3 entonces, tras auto puntuar automóvil Toyota.

128
00:09:30,870 --> 00:09:31,830
Humet Subite.

129
00:09:39,640 --> 00:09:45,700
Un Chevrolet y lo mismo un Ford octeto.

130
00:09:49,820 --> 00:09:51,440
Automóvil a?

131
00:09:55,030 --> 00:09:55,960
Ya hacemos el casting.

132
00:09:58,970 --> 00:10:00,580
Se fijan, no obliga a ser casto.

133
00:10:00,890 --> 00:10:03,800
Queda poco flexible y también con mucha posibilidad de derrota.

134
00:10:04,040 --> 00:10:05,290
Por qué no podrían equivocar?

135
00:10:05,390 --> 00:10:09,650
Y en vez de colocar, por ejemplo, automóvil animal, se fijan?

136
00:10:09,860 --> 00:10:10,610
Y acá también.

137
00:10:11,240 --> 00:10:11,750
Animal.

138
00:10:13,760 --> 00:10:19,400
Se fijan, entonces lo permite, permite hacer la serie un error y podrían utilizar el nombre jetivo

139
00:10:19,460 --> 00:10:21,420
pensando que se trata de un automóvil.

140
00:10:21,620 --> 00:10:22,010
En fin.

141
00:10:23,640 --> 00:10:26,840
Entonces, por eso es mucho mejor utilizar genéricos.

142
00:10:28,460 --> 00:10:29,390
Voy a probar acá.

143
00:10:29,480 --> 00:10:30,290
Va a funcionar bien.

144
00:10:30,560 --> 00:10:31,400
Ahí están los tres.

145
00:10:31,650 --> 00:10:35,180
Ya tenemos un camión o distintos camiones para transportar distintas cosas.

146
00:10:35,540 --> 00:10:39,380
Entonces la idea es emigrar esto a tipos genéricos.

147
00:10:40,330 --> 00:10:47,410
Y para finalizar y repasar, recuerden que acá estamos y dando el objeto mismo, el objeto camión y

148
00:10:47,410 --> 00:10:52,930
camión no es una lista, no es un ArrayList, no es un list@, no es un arreglo.

149
00:10:52,960 --> 00:10:54,280
Se fijan, pero se puede iterar.

150
00:10:54,400 --> 00:10:59,920
Y es justamente porque implementa la interfaz y terabyte, una de las características del API colección

151
00:10:59,920 --> 00:11:00,330
de Java.

152
00:11:00,430 --> 00:11:02,350
También hay explicado que el tipo list.

153
00:11:02,620 --> 00:11:04,410
Un list también es literal.

154
00:11:04,780 --> 00:11:08,170
Implemente este interfaz, pero bien a partir de la siguiente clase.

155
00:11:08,200 --> 00:11:13,450
Vamos a modificar esto para que sea 100 porciento genérico y no tener que hacer los cast sea mucho más

156
00:11:13,450 --> 00:11:16,840
flexible, mucho más dinámico y con menos posibilidad de error.

157
00:11:16,990 --> 00:11:17,740
Nos vemos.
