1 00:00:00,000 --> 00:00:01,000 Gracias por hacer depósitos. 2 00:00:01,580 --> 00:00:01,980 ¿Qué? 3 00:00:02,339 --> 00:00:03,740 Gracias por hacer depósitos. 4 00:00:05,759 --> 00:00:08,740 Ah, ¿la veis por hecho que podía no hacerlos? 5 00:00:09,019 --> 00:00:09,419 Sí. 6 00:00:10,039 --> 00:00:11,519 Ah, bueno, no, entonces no los hago. 7 00:00:11,619 --> 00:00:12,939 Yo es que pensaba que era obligatorio. 8 00:00:13,539 --> 00:00:16,000 Pero si existe la opción de no hacerlos... 9 00:00:16,899 --> 00:00:19,839 Bueno, a ver, que yo también lo necesito, 10 00:00:19,960 --> 00:00:21,579 no solo vosotros, así que no os asustéis. 11 00:00:22,820 --> 00:00:25,000 Vale, pues entonces, todo... 12 00:00:25,000 --> 00:00:27,239 Ya. 13 00:00:27,239 --> 00:00:29,760 Todo este rollo último era 14 00:00:29,760 --> 00:00:33,960 para ver que realmente existe una diferencia 15 00:00:33,960 --> 00:00:35,899 entre poner uno y dos 16 00:00:35,899 --> 00:00:37,899 para que no os quedéis como diciendo 17 00:00:37,899 --> 00:00:39,460 pues para que hay dos y hacen lo mismo 18 00:00:39,460 --> 00:00:41,640 pues no hacen exactamente lo mismo 19 00:00:41,640 --> 00:00:43,520 pero repito 20 00:00:43,520 --> 00:00:47,420 la única trascendencia es cuando la segunda expresión 21 00:00:47,420 --> 00:00:48,619 de condición 22 00:00:48,619 --> 00:00:52,259 implica que además se asigne valor a alguien 23 00:00:52,259 --> 00:00:53,859 si implica eso 24 00:00:53,859 --> 00:00:57,560 tiene trascendencia porque ese valor no se asignaría en algunos casos 25 00:00:57,560 --> 00:00:59,960 En los casos en los cuales no haga falta 26 00:00:59,960 --> 00:01:02,340 Evaluar esa condición porque ya sea falsa la primera 27 00:01:02,340 --> 00:01:04,159 Pero en la mayoría 28 00:01:04,159 --> 00:01:06,439 De los casos, que son los casos en los cuales 29 00:01:06,439 --> 00:01:08,500 No trabajamos así 30 00:01:08,500 --> 00:01:09,879 ¿No? 31 00:01:09,920 --> 00:01:10,859 Por ejemplo yo aquí 32 00:01:10,859 --> 00:01:13,480 Si descomento esto 33 00:01:13,480 --> 00:01:15,340 Si lo descomento 34 00:01:15,340 --> 00:01:17,900 Aquí entonces ya no necesito 35 00:01:17,900 --> 00:01:19,900 Leer esto 36 00:01:19,900 --> 00:01:26,340 Entonces ahora ya en este caso 37 00:01:26,340 --> 00:01:32,060 Así 38 00:01:32,060 --> 00:01:34,500 Pues en este caso 39 00:01:34,500 --> 00:01:36,579 en el cual me sobra 40 00:01:36,579 --> 00:01:38,060 no, está bien 41 00:01:38,060 --> 00:01:39,959 vale, en este caso 42 00:01:39,959 --> 00:01:41,620 esta 43 00:01:41,620 --> 00:01:44,439 expresión de evaluarla 44 00:01:44,439 --> 00:01:46,280 o no, no hay ninguna diferencia práctica 45 00:01:46,280 --> 00:01:47,900 porque no hay ninguna asignación de variable 46 00:01:47,900 --> 00:01:49,700 escondida dentro, no hay nada 47 00:01:49,700 --> 00:01:51,819 entonces, en este caso 48 00:01:51,819 --> 00:01:54,239 ¿por qué pongo el 2? 49 00:01:54,480 --> 00:01:56,159 entonces, por defecto siempre ponemos 50 00:01:56,159 --> 00:01:58,079 dos operadores, porque 51 00:01:58,079 --> 00:01:59,599 ahorras tiempo 52 00:01:59,599 --> 00:02:02,299 pasas de la segunda si no hace falta 53 00:02:02,299 --> 00:02:04,060 pero, cuidado 54 00:02:04,060 --> 00:02:05,879 Cuidado en los casos en los cuales 55 00:02:05,879 --> 00:02:07,819 Esta es de ejecución forzosa 56 00:02:07,819 --> 00:02:08,800 Por lo que sea 57 00:02:08,800 --> 00:02:11,800 Bueno 58 00:02:11,800 --> 00:02:14,699 Este ejercicio está claro 59 00:02:14,699 --> 00:02:17,659 Se supone que nos ha servido 60 00:02:17,659 --> 00:02:19,360 Para acabar de entender 61 00:02:19,360 --> 00:02:20,219 Este operador 62 00:02:20,219 --> 00:02:21,740 Si no lo entendíamos bien 63 00:02:21,740 --> 00:02:25,280 Y además para vislumbrar 64 00:02:25,280 --> 00:02:25,939 Un poquito 65 00:02:25,939 --> 00:02:28,780 La razón de que haya dos versiones 66 00:02:28,780 --> 00:02:31,879 ¿Qué más cosas tenemos por aquí? 67 00:02:35,159 --> 00:02:35,979 Este sería 68 00:02:35,979 --> 00:02:38,740 igual pero de tres condiciones 69 00:02:38,740 --> 00:02:40,199 esto podéis hacerlo vosotros 70 00:02:40,199 --> 00:02:44,379 y quien tenga dudas que lo diga 71 00:02:44,379 --> 00:02:45,979 este está claro que sería un or 72 00:02:45,979 --> 00:02:47,520 es lo mismo pero un or 73 00:02:47,520 --> 00:02:49,479 se leen dos notas 74 00:02:49,479 --> 00:02:52,300 y mostrar un mensaje diciendo 75 00:02:52,300 --> 00:02:54,000 si aprobó al menos una de ellas 76 00:02:54,000 --> 00:02:56,740 entonces si la primera nota mayor que 5 77 00:02:56,740 --> 00:02:58,740 o la segunda nota 78 00:02:58,740 --> 00:02:59,520 mayor que 5 79 00:02:59,520 --> 00:03:02,199 entonces aprobó alguna 80 00:03:02,199 --> 00:03:02,780 si no, no 81 00:03:02,780 --> 00:03:05,280 vale, entonces 82 00:03:05,280 --> 00:03:11,789 como muchos de estos ejercicios 83 00:03:11,789 --> 00:03:13,129 son ya 84 00:03:13,129 --> 00:03:15,189 de mostrar mensajes en pantalla 85 00:03:15,189 --> 00:03:17,189 condicionado, estamos ya 86 00:03:17,189 --> 00:03:19,569 estamos ya 87 00:03:19,569 --> 00:03:21,150 usando un montón de veces 88 00:03:21,150 --> 00:03:22,409 esto 89 00:03:22,409 --> 00:03:26,300 que son cadenas de texto 90 00:03:26,300 --> 00:03:28,099 lo estamos usando un montón de veces 91 00:03:28,099 --> 00:03:30,639 ahora mismo lo estamos usando solo 92 00:03:30,639 --> 00:03:32,539 para pasárselo a los 93 00:03:32,539 --> 00:03:34,800 system.out.println para que lo muestren por pantalla 94 00:03:34,800 --> 00:03:36,719 lo estamos usando solo para eso 95 00:03:36,719 --> 00:03:38,159 no vamos a usarlo para nada más 96 00:03:38,159 --> 00:03:40,379 y a veces lo usamos pasándole 97 00:03:40,379 --> 00:03:42,639 dos posibilidades, o uno o el otro 98 00:03:42,639 --> 00:03:43,419 ¿vale? 99 00:03:44,000 --> 00:03:45,939 entonces ya estamos empezando efectivamente 100 00:03:45,939 --> 00:03:47,180 a usar un montón 101 00:03:47,180 --> 00:03:49,979 lo que se llama cadena de caracteres 102 00:03:49,979 --> 00:03:52,039 ¿verdad? cadenas de caracteres, que son texto 103 00:03:52,039 --> 00:03:53,419 entre comillas dobles 104 00:03:53,419 --> 00:03:56,020 y exclusivamente entre comillas dobles 105 00:03:56,020 --> 00:03:58,060 pero entre comillas simples sería unicochar 106 00:03:58,060 --> 00:03:58,860 ¿vale? 107 00:03:59,439 --> 00:04:01,740 bueno, pues entonces, para hacer 108 00:04:01,740 --> 00:04:03,520 los programas un poquito más operativos 109 00:04:03,520 --> 00:04:05,780 y no estar todo el rato arrastrando esto 110 00:04:05,780 --> 00:04:07,460 dentro de un system out, porque es 111 00:04:07,460 --> 00:04:09,680 en un único sitio, de ahora mismo lo podemos usar 112 00:04:09,680 --> 00:04:11,460 pues vamos a introducir 113 00:04:11,460 --> 00:04:13,400 un poquito de otro tipo de 114 00:04:13,400 --> 00:04:15,240 dato, más allá de los 115 00:04:15,240 --> 00:04:16,720 siete primitivos que no sabemos 116 00:04:16,720 --> 00:04:19,180 el byte, el short, el in, el log 117 00:04:19,180 --> 00:04:21,300 el double, el float, el dicho siete 118 00:04:21,300 --> 00:04:22,540 y son ocho, el boolean y el char 119 00:04:22,540 --> 00:04:25,139 esos son los ocho datos 120 00:04:25,139 --> 00:04:27,639 de tipo, los ocho tipos de datos primitivos 121 00:04:27,639 --> 00:04:29,420 que sabemos exactamente 122 00:04:29,420 --> 00:04:30,920 cómo funcionan 123 00:04:30,920 --> 00:04:33,160 pues vamos a 124 00:04:33,160 --> 00:04:35,100 introducir, lo tenéis 125 00:04:35,100 --> 00:04:37,420 en los apuntes de la aula virtual 126 00:04:37,420 --> 00:04:39,120 una pequeña introducción a string 127 00:04:39,120 --> 00:04:41,540 que tenéis ahí, pero vamos, que todo eso son resumencillos 128 00:04:41,540 --> 00:04:43,120 para no perder el hilo 129 00:04:43,120 --> 00:04:45,180 de lo que estamos haciendo, pero no es material de estudio 130 00:04:45,180 --> 00:04:47,500 el estudio es lo que hacemos en clase 131 00:04:47,500 --> 00:04:48,920 y lo que trabajáis en casa 132 00:04:48,920 --> 00:04:50,860 lo que sube a lo virtual 133 00:04:50,860 --> 00:04:53,120 son como pequeñas guías para que sepáis lo que estamos 134 00:04:53,120 --> 00:04:55,060 haciendo, pero no es material para 135 00:04:55,060 --> 00:04:57,279 estudiar para el examen, el examen es estudiar 136 00:04:57,279 --> 00:04:59,819 haciendo ejercicios a lo bestia 137 00:04:59,819 --> 00:05:02,500 vale, bueno, pues entonces 138 00:05:02,500 --> 00:05:08,720 vamos a ver por tanto 139 00:05:08,720 --> 00:05:10,980 Un poquito de un tipo de dato adicional 140 00:05:10,980 --> 00:05:12,620 De cara 141 00:05:12,620 --> 00:05:14,500 A poder hacer los ejercicios 142 00:05:14,500 --> 00:05:16,060 Con un poquito más de 143 00:05:16,060 --> 00:05:19,939 Sí, más que soltura 144 00:05:19,939 --> 00:05:23,139 Más cómodo 145 00:05:23,139 --> 00:05:23,920 Más cómodamente 146 00:05:23,920 --> 00:05:25,339 Más cómodamente 147 00:05:25,339 --> 00:05:27,480 Vale, pues venga 148 00:05:27,480 --> 00:05:30,319 Vámonos, venga, pues no, que estoy del pein 149 00:05:30,319 --> 00:05:32,500 Hasta los cataplines 150 00:05:32,500 --> 00:05:33,920 Así que 151 00:05:33,920 --> 00:05:36,800 Vamos a poner esto 152 00:05:36,800 --> 00:05:47,100 vale, pues vamos a ver 153 00:05:47,100 --> 00:05:48,439 ese tipo de dato adicional 154 00:05:48,439 --> 00:05:50,819 recordad que los tipos de datos 155 00:05:50,819 --> 00:05:52,899 que hemos visto 156 00:05:52,899 --> 00:05:54,779 son estos, que a nadie se les olvide 157 00:05:54,779 --> 00:05:57,889 byte 158 00:05:57,889 --> 00:06:00,069 short 159 00:06:00,069 --> 00:06:01,569 int 160 00:06:01,569 --> 00:06:04,569 y long, esto para números enteros 161 00:06:04,569 --> 00:06:05,490 con diferente 162 00:06:05,490 --> 00:06:07,769 cantidad de bits 163 00:06:07,769 --> 00:06:11,860 float 164 00:06:11,860 --> 00:06:14,120 y double para números reales 165 00:06:14,120 --> 00:06:16,699 con diferente cantidad de cifras decimales 166 00:06:16,699 --> 00:06:19,420 char para un único 167 00:06:19,420 --> 00:06:20,139 carácter 168 00:06:20,139 --> 00:06:23,100 y boolean 169 00:06:23,100 --> 00:06:25,360 para una condición 170 00:06:25,360 --> 00:06:27,240 algo que puede ser 171 00:06:27,240 --> 00:06:29,319 true o false, vale, estos eran los 172 00:06:29,319 --> 00:06:30,839 tipos de datos primitivos 173 00:06:30,839 --> 00:06:37,259 bueno, ya hemos dicho varias 174 00:06:37,259 --> 00:06:38,860 veces que estos tipos de datos 175 00:06:38,860 --> 00:06:41,279 tienen el uso 176 00:06:41,279 --> 00:06:43,120 que tienen, que es números, un char 177 00:06:43,120 --> 00:06:44,920 y una condición, nada más 178 00:06:44,920 --> 00:06:47,259 las aplicaciones suelen trabajar con 179 00:06:47,259 --> 00:06:49,199 cosas un poquito más complejas, con un 180 00:06:49,199 --> 00:06:51,339 cliente que tiene un nombre 181 00:06:51,339 --> 00:06:53,399 o una edad, un DNI 182 00:06:53,399 --> 00:06:55,540 con un equipo informático 183 00:06:55,540 --> 00:06:56,259 que tiene 184 00:06:56,259 --> 00:06:59,339 el identificador 185 00:06:59,339 --> 00:07:01,220 de la placa base, lo que sea. Normalmente 186 00:07:01,220 --> 00:07:02,560 trabajamos con cosas 187 00:07:02,560 --> 00:07:05,160 cuya información no se puede 188 00:07:05,160 --> 00:07:07,220 recoger solo o en un byte o en un 189 00:07:07,220 --> 00:07:08,000 short o en un int. 190 00:07:08,899 --> 00:07:11,339 Bueno, pues para eso existen otros tipos de datos 191 00:07:11,339 --> 00:07:13,180 que no son los primitivos 192 00:07:13,180 --> 00:07:15,139 que son 193 00:07:15,139 --> 00:07:17,240 los tipos de datos objeto. 194 00:07:23,290 --> 00:07:23,410 ¿Vale? 195 00:07:23,410 --> 00:07:25,470 entonces los tipos de datos 196 00:07:25,470 --> 00:07:27,509 objeto, hay que hacerlos 197 00:07:27,509 --> 00:07:29,230 hay que fabricarlos, se construyen 198 00:07:29,230 --> 00:07:31,310 hay que fabricarlos, no los trae Java 199 00:07:31,310 --> 00:07:33,509 de serie, los que trae de serie 200 00:07:33,509 --> 00:07:34,389 son los primitivos 201 00:07:34,389 --> 00:07:37,089 los tipos de datos objeto hay que construirlos 202 00:07:37,089 --> 00:07:37,810 no los trae de serie 203 00:07:37,810 --> 00:07:41,449 ¿en qué se diferencian los tipos de datos 204 00:07:41,449 --> 00:07:42,449 objetos y los primitivos? 205 00:07:43,069 --> 00:07:45,290 aparte de que hay que construirlos, ya veremos cómo 206 00:07:45,290 --> 00:07:46,550 aparte de que hay que construirlos 207 00:07:46,550 --> 00:07:49,029 se diferencian en la forma de almacenamiento 208 00:07:49,029 --> 00:07:49,850 ¿vale? 209 00:07:50,389 --> 00:07:55,790 son varios primitivos 210 00:07:55,790 --> 00:07:58,329 Sí, pero no solo 211 00:07:58,329 --> 00:08:07,980 Por ejemplo, cuando uno declara un tipo primitivo 212 00:08:07,980 --> 00:08:09,680 Por ejemplo, como el empero 213 00:08:09,680 --> 00:08:14,259 En n, ya sabemos lo que eso implica 214 00:08:14,259 --> 00:08:16,120 Para la máquina virtual y para nuestra aplicación 215 00:08:16,120 --> 00:08:19,040 Que automáticamente aparece un espacio en memoria 216 00:08:19,040 --> 00:08:20,720 De 32 bits en este caso 217 00:08:20,720 --> 00:08:22,740 Con un nombrecito n 218 00:08:22,740 --> 00:08:27,220 Bueno, cuando declaramos un tipo objeto 219 00:08:27,220 --> 00:08:30,160 Vamos a suponer que yo he construido ya un tipo objeto 220 00:08:30,160 --> 00:08:33,539 para una variable que quiero que sea una variable 221 00:08:33,539 --> 00:08:35,200 que guarda los datos de un cliente. 222 00:08:36,120 --> 00:08:38,940 Entonces, repito, como los datos de un cliente son muchos, 223 00:08:39,440 --> 00:08:41,759 no me caben en un byte, son muchos, 224 00:08:42,200 --> 00:08:44,100 pues yo construyo, ya veremos cómo, 225 00:08:44,539 --> 00:08:47,399 construyo un nuevo tipo de datos que lo llamo cliente. 226 00:08:48,740 --> 00:08:51,320 Ese sería un nuevo tipo de dato que me he construido yo 227 00:08:51,320 --> 00:08:53,120 y que le he dado el nombre cliente. 228 00:08:53,620 --> 00:08:54,899 Ya veremos cómo se construye. 229 00:08:56,000 --> 00:08:58,179 Entonces, una vez que el tipo de dato está construido, 230 00:08:58,179 --> 00:09:00,779 uno puede ya declarar variables de ese tipo 231 00:09:00,779 --> 00:09:02,700 igual que aquí hemos declarado variable 232 00:09:02,700 --> 00:09:04,639 n de tipo int, pues 233 00:09:04,639 --> 00:09:06,840 podríamos declarar variables 234 00:09:06,840 --> 00:09:08,419 de tipo cliente 235 00:09:08,419 --> 00:09:10,720 por ejemplo, imaginaos que yo 236 00:09:10,720 --> 00:09:12,299 declaro aquí una variable 237 00:09:12,299 --> 00:09:15,970 mi cliente, vale 238 00:09:15,970 --> 00:09:18,289 pues he declarado una variable mi cliente 239 00:09:18,289 --> 00:09:19,549 con el nombre que hay me ha dado la gana 240 00:09:19,549 --> 00:09:21,389 pero su tipo de dato 241 00:09:21,389 --> 00:09:24,110 es un tipo de dato objeto que he construido 242 00:09:24,110 --> 00:09:25,990 yo para que le quepan varias cosas 243 00:09:25,990 --> 00:09:27,769 dentro, etcétera, ya veremos cómo 244 00:09:27,769 --> 00:09:30,509 bueno, pues cuando estamos 245 00:09:30,509 --> 00:09:32,570 declarando esto, la máquina virtual que está haciendo 246 00:09:32,570 --> 00:09:34,850 mi cliente en realidad 247 00:09:34,850 --> 00:09:36,070 esta variable 248 00:09:36,070 --> 00:09:38,929 en realidad 249 00:09:38,929 --> 00:09:40,690 físicamente es una 250 00:09:40,690 --> 00:09:42,490 dirección de memoria, eso es lo que es 251 00:09:42,490 --> 00:09:44,409 es una dirección de memoria RAM 252 00:09:44,409 --> 00:09:48,250 y es 253 00:09:48,250 --> 00:09:49,309 una dirección de memoria 254 00:09:49,309 --> 00:09:51,909 que será la dirección de memoria de algún sitio 255 00:09:51,909 --> 00:09:54,049 de la memoria RAM, de algún sitio, porque es una dirección 256 00:09:54,049 --> 00:09:56,029 de memoria, recordad que 257 00:09:56,029 --> 00:09:57,289 la memoria RAM pues son 258 00:09:57,289 --> 00:10:01,929 todos los espacios, los bytes, cada uno de ellos tiene una dirección asociada. 259 00:10:03,049 --> 00:10:06,509 Pues es una dirección de memoria de un espacio en memoria RAM 260 00:10:06,509 --> 00:10:10,769 donde ahora están ya todos los datos de ese objeto cliente, 261 00:10:10,889 --> 00:10:13,350 los que sean, que pueden ser tropecientos, un montón. 262 00:10:16,639 --> 00:10:21,379 Pues es la primera diferencia entre una variable de un tipo primitivo 263 00:10:21,379 --> 00:10:23,860 y una variable de un tipo construido objeto. 264 00:10:24,580 --> 00:10:27,460 En este caso, la variable es propiamente el dato, 265 00:10:27,460 --> 00:10:30,580 directamente la variable se refiere al espacio de memoria 266 00:10:30,580 --> 00:10:32,580 donde está el dato, el 7, el 8, lo que sea 267 00:10:32,580 --> 00:10:34,460 y en este otro caso 268 00:10:34,460 --> 00:10:38,179 la variable se refiere a una dirección de memoria 269 00:10:38,179 --> 00:10:40,240 y ya esta dirección de memoria 270 00:10:40,240 --> 00:10:42,899 si yo la sigo, ya veremos cómo seguirla 271 00:10:42,899 --> 00:10:46,639 si yo la sigo, ya sí que nos lleva al espacio de la RAM 272 00:10:46,639 --> 00:10:48,799 donde está todo, lo que sea 273 00:10:48,799 --> 00:10:51,419 entonces esa es la primera diferencia 274 00:10:51,419 --> 00:10:55,159 esa diferencia tenemos que 275 00:10:55,159 --> 00:10:58,139 por supuesto ser plenamente consciente de que existe 276 00:10:58,139 --> 00:11:00,519 porque tiene un montón de implicaciones 277 00:11:00,519 --> 00:11:01,940 ahora de la ejecución de un programa 278 00:11:01,940 --> 00:11:05,460 es que esto es un puntero 279 00:11:05,460 --> 00:11:07,500 claro, claro, es que 280 00:11:07,500 --> 00:11:09,879 en la aplicación de entradas de objetos 281 00:11:09,879 --> 00:11:11,539 el antiguo puntero de C 282 00:11:11,539 --> 00:11:14,139 o de otros lenguajes es un objeto 283 00:11:14,139 --> 00:11:15,519 ¿vale? 284 00:11:16,480 --> 00:11:18,159 entonces, eso es la primera cosa 285 00:11:18,159 --> 00:11:20,279 que tenemos que tener clara, que es distinto 286 00:11:20,279 --> 00:11:22,139 y luego, y tiene muchas 287 00:11:22,139 --> 00:11:24,080 implicaciones ahora de la ejecución de 288 00:11:24,080 --> 00:11:26,000 un programa, lo que pasa es que 289 00:11:26,000 --> 00:11:27,659 ahora lo programa una vez que no lo tiene claro 290 00:11:27,659 --> 00:11:30,299 pues ya no está todo el rato pensando que eso es una dirección 291 00:11:30,299 --> 00:11:32,059 no lo está pensando, no hace falta 292 00:11:32,059 --> 00:11:33,580 estarlo pensando todo el rato 293 00:11:33,580 --> 00:11:36,360 no puede ya programar con tranquilidad 294 00:11:36,360 --> 00:11:38,179 sin estar todo el rato pensando 295 00:11:38,179 --> 00:11:39,019 que eso es una dirección 296 00:11:39,019 --> 00:11:42,659 a diferencia de los antiguos punteros de C que sí que tenías que tenerlo pendiente 297 00:11:42,659 --> 00:11:44,039 para ponerle delante el simbolito 298 00:11:44,039 --> 00:11:46,620 de sacar la dirección, aquí no, aquí es todo mucho más fácil 299 00:11:46,620 --> 00:11:48,299 claro 300 00:11:48,299 --> 00:11:50,500 pero sí que hay que entender que son distintos 301 00:11:50,500 --> 00:11:52,299 porque a veces nos hay errores de ejecución 302 00:11:52,840 --> 00:11:54,500 y esto 303 00:11:54,500 --> 00:11:56,600 porque es, ah, claro, es que esta variable 304 00:11:56,600 --> 00:11:57,899 ya no es eso, ¿vale? 305 00:11:58,100 --> 00:11:59,200 Bueno, eso por un lado. 306 00:12:00,679 --> 00:12:02,340 Vale, bueno, pues siguiente cosa. 307 00:12:03,299 --> 00:12:04,419 De estos tipos que 308 00:12:04,419 --> 00:12:06,639 construimos, muchísimos 309 00:12:06,639 --> 00:12:08,600 ya están hechos afortunadamente. 310 00:12:08,799 --> 00:12:09,639 Muchos ya están hechos. 311 00:12:10,080 --> 00:12:12,320 ¿Y quién los trae? La propia Java 312 00:12:12,320 --> 00:12:14,379 Virtual Machine, la máquina virtual que ejecuta 313 00:12:14,379 --> 00:12:16,399 los programas, ya hemos visto 314 00:12:16,399 --> 00:12:18,820 alguna vez, que trae de serie incorporadas 315 00:12:18,820 --> 00:12:20,399 un montón de punto class 316 00:12:20,399 --> 00:12:22,100 dentro, ¿verdad? Un montón de punto class. 317 00:12:22,779 --> 00:12:24,480 Pues muchos de esos punto class 318 00:12:24,480 --> 00:12:26,700 son tipos de datos ya construidos 319 00:12:26,700 --> 00:12:28,679 que nosotros podemos aprovecharnos 320 00:12:28,679 --> 00:12:30,399 de ellos. Y aparte 321 00:12:30,399 --> 00:12:32,440 podemos hacer los nuestros, que de eso se trata 322 00:12:32,440 --> 00:12:34,700 todo el curso, de hacer nuestros propios tipos de datos 323 00:12:34,700 --> 00:12:36,519 o objetos. Pero hay muchos 324 00:12:36,519 --> 00:12:38,460 que ya vienen hechos y construidos y están 325 00:12:38,460 --> 00:12:39,840 en la máquina virtual y yo los puedo usar. 326 00:12:40,799 --> 00:12:42,639 Vale, pues muchos de ellos 327 00:12:42,639 --> 00:12:48,710 bueno, pues muchos ya están 328 00:12:48,710 --> 00:12:50,450 en la 329 00:12:50,450 --> 00:12:51,889 Java Virtual Machine. 330 00:12:53,230 --> 00:12:54,330 Vale, pues 331 00:12:54,330 --> 00:12:55,370 uno de ellos 332 00:12:55,370 --> 00:12:57,730 uno de ellos lo usamos desde ya 333 00:12:57,730 --> 00:12:59,850 lo tenemos que usar desde ya porque es imprescindible 334 00:12:59,850 --> 00:13:02,129 pues uno de ellos es este tipo 335 00:13:02,129 --> 00:13:05,049 el tipo string 336 00:13:05,049 --> 00:13:07,029 con la S en mayúscula 337 00:13:07,029 --> 00:13:12,950 los objetos siempre suelen ir con la primera mayúscula 338 00:13:12,950 --> 00:13:14,990 sí, eso es justo lo que iba a decir 339 00:13:14,990 --> 00:13:16,610 el nombre del tipo de dato 340 00:13:16,610 --> 00:13:19,110 uno le puede poner el que le dé la gana porque no se lo inventa 341 00:13:19,110 --> 00:13:20,830 pero de nuevo, si seguimos 342 00:13:20,830 --> 00:13:22,429 ciertos estilos de programación 343 00:13:22,429 --> 00:13:24,970 vamos a hacer nuestros programas más legibles 344 00:13:24,970 --> 00:13:26,590 entonces se asume 345 00:13:26,590 --> 00:13:29,110 que cuando te inventas un tipo de dato 346 00:13:29,110 --> 00:13:30,669 nuevo objeto 347 00:13:30,669 --> 00:13:33,370 dale un nombre que empiece en mayúscula 348 00:13:33,370 --> 00:13:35,090 dale un nombre que empiece en mayúscula 349 00:13:35,090 --> 00:13:36,730 porque así el que use 350 00:13:36,730 --> 00:13:38,509 la aplicación, el que vea el código 351 00:13:38,509 --> 00:13:40,990 va a hacer asociaciones mentales más rápidas 352 00:13:40,990 --> 00:13:42,649 va a decir, ah, esto es un tipo de dato construido 353 00:13:42,649 --> 00:13:45,269 es un objeto patatín, entonces respetémoslo 354 00:13:45,269 --> 00:13:46,490 y de hecho en la máquina virtual 355 00:13:46,490 --> 00:13:48,889 pues todos los tipos de objetos construidos 356 00:13:48,889 --> 00:13:50,470 que te dan empiezan con mayúscula 357 00:13:50,470 --> 00:13:52,169 entre ellos el stream 358 00:13:52,169 --> 00:13:55,570 bueno, pues el stream 359 00:13:55,570 --> 00:13:56,990 tiene un uso muy concreto 360 00:13:56,990 --> 00:14:05,299 Vale, pues como podemos sospechar 361 00:14:05,299 --> 00:14:06,399 Por su nombre 362 00:14:06,399 --> 00:14:08,600 ¿El string para qué vale? 363 00:14:08,700 --> 00:14:09,659 Para guardar muchos charts 364 00:14:09,659 --> 00:14:12,720 Para eso vale el string 365 00:14:12,720 --> 00:14:16,059 Eso, internamente 366 00:14:16,059 --> 00:14:18,559 Internamente, físicamente 367 00:14:18,559 --> 00:14:19,899 Está almacenado como una raíz de chart 368 00:14:19,899 --> 00:14:22,460 Lo que pasa es que no lo puedes usar como una raíz de chart 369 00:14:22,460 --> 00:14:24,519 Porque está envuelto en este tipo 370 00:14:24,519 --> 00:14:27,220 Guarda 371 00:14:27,220 --> 00:14:29,500 ¿No lo podrías usar como una raíz de chart 372 00:14:29,500 --> 00:14:31,139 Para distinguir una letra 373 00:14:31,139 --> 00:14:32,159 Ante las terceras letras? 374 00:14:32,159 --> 00:14:35,120 Sí, pero no accediendo a la posición del array, 375 00:14:35,240 --> 00:14:36,059 porque el array está oculto, 376 00:14:36,120 --> 00:14:40,159 sino accediendo a través del método que te ofrezcas. 377 00:14:41,419 --> 00:14:43,460 Este tipo envuelve al array 378 00:14:43,460 --> 00:14:45,980 y te da una nueva forma de usar ese array 379 00:14:45,980 --> 00:14:47,019 que no es la tradicional. 380 00:14:49,379 --> 00:14:51,779 Guarda muchos caracteres en fila. 381 00:14:51,840 --> 00:14:52,679 ¡Hala! Por ponerlo así. 382 00:14:55,919 --> 00:14:58,039 Pues estupendo, porque muchos caracteres en fila 383 00:14:58,039 --> 00:14:59,179 es una cadena de caracteres, 384 00:14:59,240 --> 00:15:01,679 lo que nosotros usamos tan a menudo que nos es muy útil. 385 00:15:01,679 --> 00:15:05,019 para guardar nombres, para poner mensajes. 386 00:15:05,679 --> 00:15:07,620 Las cadenas de carácteres las necesitamos desde ya. 387 00:15:07,960 --> 00:15:10,379 Estamos todo el rato mostrando cadenas de carácteres ahí, 388 00:15:10,879 --> 00:15:11,820 poniéndolas tal cual, 389 00:15:12,539 --> 00:15:15,440 cuando a lo mejor podríamos haberlas guardado en un objeto, 390 00:15:15,919 --> 00:15:17,139 en una variable de esas, 391 00:15:17,620 --> 00:15:18,759 y habría sido más cómodo. 392 00:15:20,360 --> 00:15:21,440 Bueno, pues entonces, 393 00:15:21,559 --> 00:15:23,379 ya sabemos que ese tipo de dato existe 394 00:15:23,379 --> 00:15:24,639 y para qué vale. 395 00:15:25,899 --> 00:15:26,919 ¿Cómo lo usamos? 396 00:15:27,559 --> 00:15:29,940 Esto tiene millones de métodos, de historias y de rollos, 397 00:15:29,940 --> 00:15:32,399 pero vamos a ver el uso básico 398 00:15:32,399 --> 00:15:33,679 para poder trabajar con él 399 00:15:33,679 --> 00:15:35,519 pues yo declaro una variable string 400 00:15:35,519 --> 00:15:37,139 como declara cualquier otra variable 401 00:15:37,139 --> 00:15:39,539 igual que yo declaro una variable entera 402 00:15:39,539 --> 00:15:41,779 poniendo tipo de dato y el nombre 403 00:15:41,779 --> 00:15:42,779 que a mí me dé la gana 404 00:15:42,779 --> 00:15:44,960 pues declaro una variable 405 00:15:44,960 --> 00:15:47,179 cadena de caracteres 406 00:15:47,179 --> 00:15:49,639 poniendo el tipo de dato 407 00:15:49,639 --> 00:15:53,200 y aquí el nombre 408 00:15:53,200 --> 00:15:54,720 de la variable que a mí me dé la gana 409 00:15:54,720 --> 00:15:56,960 pues ya está 410 00:15:56,960 --> 00:15:58,740 ya me he declarado una variable tipo 411 00:15:58,740 --> 00:16:00,500 cadena de caracteres o variable string 412 00:16:00,500 --> 00:16:03,539 Exactamente igual que me declaro un name 413 00:16:03,539 --> 00:16:04,559 Exactamente igual 414 00:16:04,559 --> 00:16:07,139 Vale, lo que pasa es que ahora 415 00:16:07,139 --> 00:16:09,539 Esta variable sirve para guardar 416 00:16:09,539 --> 00:16:10,539 Cadenas de caracteres 417 00:16:10,539 --> 00:16:15,509 Y solo para eso, para guardar cadenas de caracteres 418 00:16:15,509 --> 00:16:17,610 Por tanto, si yo quiero hacer una asignación 419 00:16:17,610 --> 00:16:23,559 Pues tendré que hacer una asignación 420 00:16:23,559 --> 00:16:24,720 Compatible 421 00:16:24,720 --> 00:16:30,169 Por ejemplo, nombre igual 422 00:16:30,169 --> 00:16:32,049 ¿Y qué le podemos asignar a nombre? 423 00:16:32,230 --> 00:16:33,990 Algo que sea cadena de caracteres 424 00:16:33,990 --> 00:16:35,990 Como por ejemplo, esto 425 00:16:35,990 --> 00:16:38,129 Ahí sí que tienes que ponerle antecomunidad 426 00:16:38,129 --> 00:16:41,350 claro, porque esto es el valor 427 00:16:41,350 --> 00:16:43,190 de esa cadena, yo quiero que esta cadena 428 00:16:43,190 --> 00:16:44,309 tenga como contenido 429 00:16:44,309 --> 00:16:46,370 esto, echamos otro asunto 430 00:16:46,370 --> 00:16:48,710 esto, pues ya está, es una asignación válida 431 00:16:48,710 --> 00:16:50,570 con espacios 432 00:16:50,570 --> 00:16:53,350 claro, cualquier sucesión de caracteres 433 00:16:53,350 --> 00:16:54,830 de la tabla ASTI, cualquiera 434 00:16:54,830 --> 00:16:56,990 la que te dé la gana, es una cadena de caracteres 435 00:16:56,990 --> 00:16:58,850 se le asignas la variable nombre 436 00:16:58,850 --> 00:16:59,509 y ya está 437 00:16:59,509 --> 00:17:03,250 y haces asignaciones exactamente igual 438 00:17:03,250 --> 00:17:04,170 como que otra variable 439 00:17:04,170 --> 00:17:06,549 imaginemos que tenemos otra variable 440 00:17:06,549 --> 00:17:09,390 string que se llama apellido 441 00:17:09,390 --> 00:17:11,410 por ejemplo, ahora tengo dos variables 442 00:17:11,410 --> 00:17:13,069 string, por ejemplo 443 00:17:13,069 --> 00:17:14,609 pues esto 444 00:17:14,609 --> 00:17:16,829 si 445 00:17:16,829 --> 00:17:19,569 podría hacer esto aunque no tenga sentido 446 00:17:19,569 --> 00:17:21,450 pero en términos de 447 00:17:21,450 --> 00:17:22,769 java es válido 448 00:17:22,769 --> 00:17:25,410 al string apellido 449 00:17:25,410 --> 00:17:27,529 le asigno lo que tenga nombre 450 00:17:27,529 --> 00:17:29,650 lo que tenga nombre, entonces le estaría 451 00:17:29,650 --> 00:17:31,410 asignando lo que tiene nombre que es Carlos 452 00:17:31,410 --> 00:17:33,630 exactamente igual cuando trabajo con asignaciones 453 00:17:33,630 --> 00:17:35,390 enteras, cuando hago 454 00:17:35,390 --> 00:17:36,309 n igual a m 455 00:17:36,309 --> 00:17:39,029 lo que tiene m 456 00:17:39,029 --> 00:17:41,390 se lo asigno a n, porque ambas son 457 00:17:41,390 --> 00:17:42,470 enteras, lo puedo hacer 458 00:17:42,470 --> 00:17:45,089 pues aquí lo mismo, lo que tiene nombre 459 00:17:45,089 --> 00:17:46,250 se lo asigno a apellido 460 00:17:46,250 --> 00:17:48,569 porque ambas son este y lo puedo hacer 461 00:17:48,569 --> 00:17:50,269 ya está, no pasa nada 462 00:17:50,269 --> 00:17:53,250 entonces lo podemos usar como cualquier otro tipo 463 00:17:53,250 --> 00:17:55,349 de dato, aunque internamente no funciona así 464 00:17:55,349 --> 00:17:56,170 y es 465 00:17:56,170 --> 00:18:05,259 ¿vale? y ahora 466 00:18:05,259 --> 00:18:07,619 nosotros ya hemos visto que el operador más 467 00:18:07,619 --> 00:18:09,839 ya hemos mencionado, cuando trabaja con 468 00:18:09,839 --> 00:18:11,339 cadenas de caracteres, concatena 469 00:18:11,339 --> 00:18:14,680 Pues puedo concatenar string 470 00:18:14,680 --> 00:18:17,259 Porque los string son cadenas de caracteres 471 00:18:17,259 --> 00:18:19,119 Por ejemplo podría hacer esto 472 00:18:19,119 --> 00:18:27,089 Y esto es una operación válida 473 00:18:27,089 --> 00:18:28,710 Porque el operador más 474 00:18:28,710 --> 00:18:30,430 Tiene una cadena a un lado 475 00:18:30,430 --> 00:18:31,769 Y otra cadena al otro 476 00:18:31,769 --> 00:18:34,650 Luego más es concatenación 477 00:18:34,650 --> 00:18:37,130 Concatena esta cadena con esta cadena 478 00:18:37,130 --> 00:18:38,589 Y la concatenación de ambas 479 00:18:38,589 --> 00:18:39,069 Aquí 480 00:18:39,069 --> 00:18:41,210 Vale, entonces 481 00:18:41,210 --> 00:18:45,250 Bueno pues ved cualquier variable 482 00:18:45,250 --> 00:18:48,089 Claro, claro, seguido 483 00:18:48,089 --> 00:18:49,730 Si yo quiero un espacio, con catena entre medias 484 00:18:49,730 --> 00:18:51,509 Una cadena espacio, lo que yo quiera 485 00:18:51,509 --> 00:18:54,250 ¿Vale? Entonces ves una variable string 486 00:18:54,250 --> 00:18:56,089 Como una cadena de caracteres, sin más 487 00:18:56,089 --> 00:18:58,609 Me da igual tener la cadena así puesta 488 00:18:58,609 --> 00:19:00,529 Que tenerla guardada en una variable 489 00:19:00,529 --> 00:19:02,009 Porque es lo mismo 490 00:19:02,009 --> 00:19:06,289 Entonces, como variables para guardar valor 491 00:19:06,289 --> 00:19:07,369 No tienen más que esto 492 00:19:07,369 --> 00:19:10,009 Ahora ya el tema es 493 00:19:10,009 --> 00:19:12,109 Si queremos hacer cosas con esas cadenas 494 00:19:12,109 --> 00:19:13,569 Como por ejemplo 495 00:19:13,569 --> 00:19:15,789 Ver, por ejemplo 496 00:19:15,789 --> 00:19:18,109 ver el carácter que tengo en una posición 497 00:19:18,109 --> 00:19:20,369 ver el tamaño que tiene 498 00:19:20,369 --> 00:19:22,369 si quiero hacer eso 499 00:19:22,369 --> 00:19:23,410 me puedo aprovechar 500 00:19:23,410 --> 00:19:25,470 de que los objetos 501 00:19:25,470 --> 00:19:28,029 como ya he dicho alguna vez 502 00:19:28,029 --> 00:19:30,210 son variables 503 00:19:30,210 --> 00:19:31,809 con muchas cositas dentro 504 00:19:31,809 --> 00:19:33,890 y eso es lo que son físicamente 505 00:19:33,890 --> 00:19:36,069 variables con muchas cosas dentro 506 00:19:36,069 --> 00:19:37,269 pero 507 00:19:37,269 --> 00:19:39,390 además de eso 508 00:19:39,390 --> 00:19:42,710 son capaces de hacer cosas 509 00:19:42,710 --> 00:19:44,349 que es lo que una variable 510 00:19:44,349 --> 00:19:45,450 primitiva no es capaz 511 00:19:45,450 --> 00:19:52,210 Entonces, como esto es una variable objeto 512 00:19:52,210 --> 00:19:54,690 Aparte de tener su valor cadena dentro 513 00:19:54,690 --> 00:19:56,829 Es capaz de hacer cosas 514 00:19:56,829 --> 00:20:00,049 Y esa capacidad de hacer cosas 515 00:20:00,049 --> 00:20:03,549 Nos va a permitir a través de esas cosas que es capaz de hacer 516 00:20:03,549 --> 00:20:06,410 Obtener, por ejemplo, el char en una posición 517 00:20:06,410 --> 00:20:09,509 Ver la longitud, cosas de esas 518 00:20:09,509 --> 00:20:11,329 Es como cuando veíamos el escáner 519 00:20:11,329 --> 00:20:12,890 El objeto escáner 520 00:20:12,890 --> 00:20:22,049 vale, creo que he grabado con la otra cámara 521 00:20:22,049 --> 00:20:23,950 porque se veía muy bien, o sea que vas ahí en el tejo 522 00:20:23,950 --> 00:20:24,490 pero bueno 523 00:20:24,490 --> 00:20:52,579 vale 524 00:20:52,579 --> 00:20:56,039 vale, vamos a hacer 525 00:20:56,039 --> 00:20:57,200 en una clase aparte 526 00:20:57,200 --> 00:20:59,059 un ejemplo con string 527 00:20:59,059 --> 00:21:02,059 pero la idea que he dicho 528 00:21:02,059 --> 00:21:04,259 es, por ejemplo, ¿qué otro ejemplo de variable 529 00:21:04,259 --> 00:21:06,059 de tipo objeto hemos usado hasta ahora? 530 00:21:06,819 --> 00:21:07,519 pues el scan 531 00:21:07,519 --> 00:21:09,940 ¿verdad? ya en su momento 532 00:21:09,940 --> 00:21:11,819 cuando lo usamos lo dijimos, dijimos, ojo 533 00:21:11,819 --> 00:21:14,059 scan es una variable 534 00:21:14,059 --> 00:21:16,259 más, lo que pasa 535 00:21:16,259 --> 00:21:18,539 es que es una variable de un tipo construido 536 00:21:18,539 --> 00:21:20,000 que se llama scanner 537 00:21:20,000 --> 00:21:22,279 entonces aparte de guardar un valor 538 00:21:22,279 --> 00:21:24,319 dentro, lo que sea que guarde 539 00:21:24,319 --> 00:21:26,259 es capaz de hacer cosas 540 00:21:26,259 --> 00:21:27,720 como esta 541 00:21:27,720 --> 00:21:30,480 quedarse esperando a un boolean 542 00:21:30,480 --> 00:21:32,180 recogerlo y 543 00:21:32,180 --> 00:21:34,420 mandarlo para afuera a la variable que uno le dé 544 00:21:34,420 --> 00:21:36,299 ¿vale? entonces scan 545 00:21:36,299 --> 00:21:37,660 como es una variable 546 00:21:37,660 --> 00:21:40,099 de un tipo construido objeto 547 00:21:40,099 --> 00:21:42,180 aparte de tener su propio valor 548 00:21:42,180 --> 00:21:43,920 es capaz de hacer cosas 549 00:21:43,920 --> 00:21:46,240 y ese hacer cosas se hace 550 00:21:46,240 --> 00:21:48,140 nombre de variable, punto 551 00:21:48,140 --> 00:21:49,859 y la acción que uno quiera hacer 552 00:21:49,859 --> 00:21:51,420 pues string igual 553 00:21:51,420 --> 00:21:54,279 string, además de guardar dentro su valor 554 00:21:54,279 --> 00:21:55,759 que son todos los caracteres en filita 555 00:21:55,759 --> 00:21:58,480 es capaz también de llamar a cositas 556 00:21:58,480 --> 00:21:59,420 para hacer cosas 557 00:21:59,420 --> 00:22:02,000 y vamos a ver las básicas en un ejemplo 558 00:22:02,000 --> 00:22:04,380 tienen muchísimas 559 00:22:04,380 --> 00:22:05,940 claro, pero con una cadena 560 00:22:05,940 --> 00:22:07,480 te puede interesar a ti hacer mil cosas 561 00:22:07,480 --> 00:22:09,799 entonces, por ejemplo 562 00:22:09,799 --> 00:22:10,619 a ver 563 00:22:10,619 --> 00:22:15,839 lo vamos a hacer en un proyecto aparte 564 00:22:15,839 --> 00:22:16,779 aunque solo sea una clase 565 00:22:16,779 --> 00:22:19,819 para subir la ola virtual 566 00:22:19,819 --> 00:22:26,259 ejemplo stream 567 00:22:26,259 --> 00:22:43,849 venga, vamos a hacernos 568 00:22:43,849 --> 00:22:44,890 una nueva clase 569 00:22:44,890 --> 00:22:49,789 ejemplo stream 570 00:22:49,789 --> 00:22:55,539 venga 571 00:22:55,539 --> 00:23:00,200 mi ejemplo stream 572 00:23:00,200 --> 00:23:04,660 vamos a declararnos primero una cadena 573 00:23:04,660 --> 00:23:06,440 Para guardar un nombre 574 00:23:06,440 --> 00:23:11,380 Pues string, declaradísima 575 00:23:11,380 --> 00:23:13,680 Nombre ahora ya me vale solo 576 00:23:13,680 --> 00:23:16,279 Para guardar nombres 577 00:23:16,279 --> 00:23:19,960 Ala 578 00:23:19,960 --> 00:23:22,539 Ya está, una asignación perfectamente válida 579 00:23:22,539 --> 00:23:23,019 Vale 580 00:23:23,019 --> 00:23:25,839 Y efectivamente puede ser 581 00:23:25,839 --> 00:23:27,579 Que yo tenga aquí 582 00:23:27,579 --> 00:23:29,980 Otro nombre 583 00:23:29,980 --> 00:23:32,400 Dos 584 00:23:32,400 --> 00:23:34,039 Y tal y como hemos dicho 585 00:23:34,039 --> 00:23:36,500 A nombre dos 586 00:23:36,500 --> 00:23:38,519 Le puedo asignar nombre 587 00:23:38,519 --> 00:23:45,940 O lo que a mí me dé la gana, por ejemplo, le voy a asignar la concatenación de nombre más nombre. 588 00:23:46,079 --> 00:23:48,640 Entonces, si lo muestro, pues ya sabemos lo que nos va a salir, obviamente. 589 00:23:49,279 --> 00:23:51,160 El nombre de arriba dos veces seguido. 590 00:24:02,089 --> 00:24:03,589 Bueno, como nos podíamos esperar. 591 00:24:04,309 --> 00:24:05,630 Bueno, pues esto es lo básico. 592 00:24:09,880 --> 00:24:17,099 Vale, entonces, ahora, esta variable, por ser de tipo objeto, 593 00:24:17,099 --> 00:24:18,799 aparte de recibir valor 594 00:24:18,799 --> 00:24:21,200 y entregarlo en las expresiones 595 00:24:21,200 --> 00:24:23,319 que haga falta, aparte de recibir 596 00:24:23,319 --> 00:24:24,880 valor y entregarlo, puede 597 00:24:24,880 --> 00:24:26,559 ejecutar acciones 598 00:24:26,559 --> 00:24:28,460 que es lo que nunca haría un número 599 00:24:28,460 --> 00:24:31,400 un char no puede ejecutar acciones 600 00:24:31,400 --> 00:24:32,519 este sí puede 601 00:24:32,519 --> 00:24:35,160 por ejemplo, ¿qué acciones puede 602 00:24:35,160 --> 00:24:37,059 ejecutar? pues gracias a que tenemos 603 00:24:37,059 --> 00:24:39,200 un entorno de desarrollo, pues el entorno de desarrollo ya no 604 00:24:39,200 --> 00:24:39,480 chiva 605 00:24:39,480 --> 00:24:42,519 ¿vale? entonces ejecutar una acción 606 00:24:42,519 --> 00:24:44,519 para que una variable ejecute una acción 607 00:24:44,519 --> 00:24:47,460 Esto en términos de sintaxis 608 00:24:47,460 --> 00:24:48,779 Tiene que ser poniendo un punto 609 00:24:48,779 --> 00:24:51,740 Y aquí tenemos las tropecientas 610 00:24:51,740 --> 00:24:52,440 Mil acciones 611 00:24:52,440 --> 00:24:54,440 Que me puede hacer eso 612 00:24:54,440 --> 00:24:57,420 Ahora mismo nos van a interesar poquísimas 613 00:24:57,420 --> 00:24:59,380 Por ejemplo 614 00:24:59,380 --> 00:25:01,559 Esta 615 00:25:01,559 --> 00:25:04,180 Esta acción 616 00:25:04,180 --> 00:25:05,779 ¿Qué hace? 617 00:25:06,279 --> 00:25:07,240 Asigna un número 618 00:25:07,240 --> 00:25:10,289 No, asigna no 619 00:25:10,289 --> 00:25:12,230 Tú le pasas un entero 620 00:25:12,230 --> 00:25:14,589 Y te devuelve el char 621 00:25:14,589 --> 00:25:16,890 que está 622 00:25:16,890 --> 00:25:18,809 dentro del string, en esa posición 623 00:25:18,809 --> 00:25:19,650 ¿vale? 624 00:25:21,750 --> 00:25:23,630 empezando por la 0 625 00:25:23,630 --> 00:25:26,940 en la 626 00:25:26,940 --> 00:25:27,640 posición 627 00:25:27,640 --> 00:25:30,400 3 628 00:25:30,400 --> 00:25:34,849 asumiendo que la primera es la 0 629 00:25:34,849 --> 00:25:40,059 ¿vale? entonces 630 00:25:40,059 --> 00:25:42,240 si mostramos esto 631 00:25:42,240 --> 00:25:45,910 pues nos va 632 00:25:45,910 --> 00:25:47,609 a mostrar efectivamente 633 00:25:47,609 --> 00:25:49,710 la posición 634 00:25:49,710 --> 00:25:51,069 3 es 635 00:25:51,069 --> 00:25:52,569 esta 636 00:25:52,569 --> 00:25:54,589 esta, es la 3 637 00:25:54,589 --> 00:25:55,549 vale 638 00:25:55,549 --> 00:25:58,910 entonces si ejecutamos esto, pues obviamente nos muestra 639 00:25:58,910 --> 00:25:59,829 la posición 3 640 00:25:59,829 --> 00:26:04,609 vale, entonces este método 641 00:26:04,609 --> 00:26:07,289 es uno de los 3 básicos 642 00:26:07,289 --> 00:26:09,049 que vamos a mencionar ahora simplemente 643 00:26:09,049 --> 00:26:11,230 pero bueno, son básicos para cualquier cosa 644 00:26:11,230 --> 00:26:13,490 entonces que uno quiere de una cadena 645 00:26:13,490 --> 00:26:15,390 el carácter de una posición 646 00:26:15,390 --> 00:26:17,190 que puede quererlo a veces 647 00:26:17,190 --> 00:26:18,730 llama aquí 648 00:26:18,730 --> 00:26:20,089 y le da la posición 649 00:26:20,089 --> 00:26:22,769 cuidado porque si nos pasamos 650 00:26:22,769 --> 00:26:24,910 imaginaos que yo le digo la posición 98 651 00:26:24,910 --> 00:26:25,809 esa posición no existe 652 00:26:25,809 --> 00:26:28,009 si nos pasamos 653 00:26:28,009 --> 00:26:30,690 pa, excepción 654 00:26:30,690 --> 00:26:32,369 ya sabemos que cuando un programa 655 00:26:32,369 --> 00:26:34,609 cuando la máquina virtual no sabe 656 00:26:34,609 --> 00:26:36,130 qué hacer y se encuentra en una situación rara 657 00:26:36,130 --> 00:26:38,230 te lanza una excepción y se para 658 00:26:38,230 --> 00:26:40,390 pues es lo que ha hecho 659 00:26:40,390 --> 00:26:42,309 te ha lanzado una excepción de qué tipo 660 00:26:42,309 --> 00:26:44,269 string in travel bounds 661 00:26:44,269 --> 00:26:46,269 te has salido de las 662 00:26:46,269 --> 00:26:47,650 fronteras del string 663 00:26:47,650 --> 00:26:50,109 y si vamos bajando 664 00:26:50,109 --> 00:26:51,410 vamos bajando hasta 665 00:26:51,410 --> 00:26:53,289 vamos bajando hasta que lleguemos 666 00:26:53,289 --> 00:26:55,210 al primer código nuestro 667 00:26:55,210 --> 00:26:57,170 que en este caso sería este 668 00:26:57,170 --> 00:26:59,569 pero todos estos no son nuestros, son de la máquina virtual 669 00:26:59,569 --> 00:27:01,529 pinchamos y se va 670 00:27:01,529 --> 00:27:02,349 a donde dio el error 671 00:27:02,349 --> 00:27:03,630 ¿vale? 672 00:27:08,130 --> 00:27:09,190 a ver, porque yo decía 673 00:27:09,190 --> 00:27:11,769 dame el carácter de esta cadena, nombre 674 00:27:11,769 --> 00:27:13,670 la puse 98, si 98 675 00:27:13,670 --> 00:27:15,890 me he salido, solo tiene 0 676 00:27:15,890 --> 00:27:17,150 1, 2, 3, 4 677 00:27:17,150 --> 00:27:20,089 como le dé de la 5 en adelante 678 00:27:20,089 --> 00:27:22,450 la máquina virtual no sabe 679 00:27:22,450 --> 00:27:23,250 qué hacer 680 00:27:23,250 --> 00:27:25,490 y cuando la máquina virtual no sabe qué hacer 681 00:27:25,490 --> 00:27:28,289 para el programa, pum, parado 682 00:27:28,289 --> 00:27:29,990 y además te dice todo eso 683 00:27:29,990 --> 00:27:32,569 entonces 684 00:27:32,569 --> 00:27:34,670 está ya 685 00:27:34,670 --> 00:27:36,650 lógicamente que nos vaya sonando 686 00:27:36,650 --> 00:27:38,490 si nos sale 687 00:27:38,490 --> 00:27:40,950 esta excepción es porque en algún sitio 688 00:27:40,950 --> 00:27:42,710 hemos intentado acceder 689 00:27:42,710 --> 00:27:43,670 a una posición 690 00:27:43,670 --> 00:27:45,869 de variable que no está 691 00:27:45,869 --> 00:27:46,849 ¿vale? 692 00:27:47,150 --> 00:27:52,130 vale 693 00:27:52,130 --> 00:27:55,809 bueno este método está claro como funciona 694 00:27:55,809 --> 00:27:59,579 que otros dos 695 00:27:59,579 --> 00:28:01,519 métodos necesitamos a 696 00:28:01,519 --> 00:28:02,420 cortísimo plazo 697 00:28:02,420 --> 00:28:05,660 cuando digo método, digo método 698 00:28:05,660 --> 00:28:07,240 porque es un nombre técnico 699 00:28:07,240 --> 00:28:09,380 pero 700 00:28:09,380 --> 00:28:10,900 entended que es la acción 701 00:28:10,900 --> 00:28:13,059 que este objeto es capaz de realizar 702 00:28:13,059 --> 00:28:15,220 este objeto nombre es capaz 703 00:28:15,220 --> 00:28:17,500 de buscar en sí mismo el char de posición 704 00:28:17,500 --> 00:28:18,680 3 y entregarlo para afuera 705 00:28:18,680 --> 00:28:21,359 vale, que más acciones es capaz de 706 00:28:21,359 --> 00:28:23,420 Realizar una variable objeto string. 707 00:28:24,319 --> 00:28:30,140 Pues una muy interesante que es contarse y decir cuántos caracteres tiene. 708 00:28:31,200 --> 00:28:33,420 Esta es una también muy interesante. 709 00:28:38,329 --> 00:28:45,569 Sí, no quiero poner ñ porque en función de dónde trabaje uno, pues sí o no. 710 00:28:51,809 --> 00:28:53,210 ¿La Java Virtual Machine tiene ñ? 711 00:28:57,880 --> 00:29:00,700 A ver, es que la Java Virtual Machine no entiende de caracteres. 712 00:29:01,220 --> 00:29:02,920 Entiende solamente de punto class. 713 00:29:02,920 --> 00:29:04,339 Te refieres al Java C. 714 00:29:04,339 --> 00:29:06,079 Si el Java C admite 715 00:29:06,079 --> 00:29:08,519 Si le pones el 716 00:29:08,519 --> 00:29:10,960 Claro, el módulo correspondiente 717 00:29:10,960 --> 00:29:12,359 O sea, Java C tiene que 718 00:29:12,359 --> 00:29:15,160 Admitir eso dentro de sus caracteres 719 00:29:15,160 --> 00:29:16,859 Pero hay que ponerle un módulo aparte 720 00:29:16,859 --> 00:29:18,940 De todas formas, yo creo que ahora mismo 721 00:29:18,940 --> 00:29:20,980 Tal y como lo tenemos nosotros, sí que admite 722 00:29:20,980 --> 00:29:21,799 La ñ 723 00:29:21,799 --> 00:29:24,839 Pero como recomendación habitual 724 00:29:24,839 --> 00:29:26,039 Caracteres raros 725 00:29:26,039 --> 00:29:28,579 Con tildes, con cosas raras, nunca 726 00:29:28,579 --> 00:29:31,279 Alfanuméricos 727 00:29:31,279 --> 00:29:32,619 Barras bajas 728 00:29:32,619 --> 00:29:34,279 Y el dólar es que se usa bastante 729 00:29:34,279 --> 00:29:36,380 como para variables de control 730 00:29:36,380 --> 00:29:37,599 que empiezan por dólar 731 00:29:37,599 --> 00:29:39,420 entonces el dólar se admite en todos los 732 00:29:39,420 --> 00:29:41,599 voy a dejar la ñ a propósito a ver si 733 00:29:41,599 --> 00:29:44,299 vale, y entonces ahora pongo 734 00:29:44,299 --> 00:29:48,329 vale 735 00:29:48,329 --> 00:29:50,690 entonces, ¿esto qué hace? 736 00:29:51,170 --> 00:29:52,369 se va a guardar en un int 737 00:29:52,369 --> 00:29:53,910 la longitud del dólar 738 00:29:53,910 --> 00:29:56,390 claro, este método o esta acción 739 00:29:56,390 --> 00:29:59,190 cuenta los caracteres 740 00:29:59,190 --> 00:30:00,970 de esta cadena, los cuenta 741 00:30:00,970 --> 00:30:02,369 y los guarda aquí 742 00:30:02,369 --> 00:30:04,450 y los guarda aquí 743 00:30:04,450 --> 00:30:05,710 y ahora lo muestro 744 00:30:05,710 --> 00:30:10,150 No, los que tienes 745 00:30:10,150 --> 00:30:11,369 Si tienes 7, 7 746 00:30:11,369 --> 00:30:13,029 O sea, no te muestra la última 747 00:30:13,029 --> 00:30:16,769 En Anita tendría 5 748 00:30:16,769 --> 00:30:17,910 Los cuenta 749 00:30:17,910 --> 00:30:18,869 1, 2, 3, 4, 5, 6 750 00:30:18,869 --> 00:30:22,789 Eso, no cuenta 0, 1, 2, 3 751 00:30:22,789 --> 00:30:24,230 No cuenta 1, 2, 3, 4 752 00:30:24,230 --> 00:30:26,710 Vale, entonces si ejecutamos esto 753 00:30:26,710 --> 00:30:29,009 Pues 5 754 00:30:29,009 --> 00:30:30,869 Vale, entonces al compilador 755 00:30:30,869 --> 00:30:32,950 Este javacea, la versión de jdk 756 00:30:32,950 --> 00:30:33,730 O javacenuestro 757 00:30:33,730 --> 00:30:35,690 La ñ no la han gusteado mucho 758 00:30:35,690 --> 00:30:38,910 no, que no le ha angustiado 759 00:30:38,910 --> 00:30:40,269 le ha gustado, pero 760 00:30:40,269 --> 00:30:43,029 es muy mal hábito ese 761 00:30:43,029 --> 00:30:45,930 así que 762 00:30:45,930 --> 00:30:47,170 lo ponemos 763 00:30:47,170 --> 00:30:56,650 me ha salido 5 764 00:30:56,650 --> 00:30:57,349 que es el que tiene 765 00:30:57,349 --> 00:31:00,190 me ha salido 766 00:31:00,190 --> 00:31:01,250 hay un 5 767 00:31:01,250 --> 00:31:14,809 Vale, y ya último 768 00:31:14,809 --> 00:31:19,630 Último 769 00:31:19,630 --> 00:31:22,150 ¿Qué hacemos muy a menudo 770 00:31:22,150 --> 00:31:24,750 Hasta ahora con nuestros números, nuestras cosas? 771 00:31:25,730 --> 00:31:26,609 Pues mirad 772 00:31:26,609 --> 00:31:27,750 Los igualábamos, ¿verdad? 773 00:31:28,470 --> 00:31:30,390 Igualábamos, n es igual a m 774 00:31:30,390 --> 00:31:31,369 Pues entonces no sé qué 775 00:31:31,369 --> 00:31:32,869 O sea, el ser igual a 776 00:31:32,869 --> 00:31:34,750 Lo hemos usado mucho entre números, ¿verdad? 777 00:31:35,049 --> 00:31:36,470 Este número es igual a este otro 778 00:31:36,470 --> 00:31:38,849 bueno, pues algo que también podemos 779 00:31:38,849 --> 00:31:41,029 necesitar hacer es ver si una cadena es igual a otra 780 00:31:41,029 --> 00:31:42,970 vale 781 00:31:42,970 --> 00:31:45,190 pues ver si una cadena es igual a otra 782 00:31:45,190 --> 00:31:46,869 para hacer una condición de igualdad 783 00:31:46,869 --> 00:31:48,769 esta cadena es igual a esta otra 784 00:31:48,769 --> 00:31:51,029 puede ser algo que queramos hacer 785 00:31:51,029 --> 00:31:52,509 ver si una cadena es igual a otra 786 00:31:52,509 --> 00:31:54,490 entonces uno podría 787 00:31:54,490 --> 00:31:56,930 ir así tranquilamente 788 00:31:56,930 --> 00:32:02,130 boolean 789 00:32:02,130 --> 00:32:05,309 iguales, vamos a meter aquí 790 00:32:05,309 --> 00:32:07,289 la condición de que nombre 791 00:32:07,289 --> 00:32:08,690 sea igual a nombre 2 792 00:32:08,690 --> 00:32:17,089 ¿Vale? 793 00:32:19,890 --> 00:32:22,809 Entonces la condición de que nombre sea igual a nombre 2 794 00:32:22,809 --> 00:32:24,890 La pondríais así, ¿verdad? 795 00:32:34,990 --> 00:32:35,509 ¿Vale? 796 00:32:38,059 --> 00:32:39,980 Entonces en este caso me va a dar false 797 00:32:39,980 --> 00:32:41,940 Porque nombre 2 tiene Anitta Anitta 798 00:32:41,940 --> 00:32:43,559 Y nombre tiene Anitta Paloseco 799 00:32:43,559 --> 00:32:44,420 No son iguales 800 00:32:44,420 --> 00:32:47,079 Entonces me va a dar false, ¿verdad? 801 00:32:47,619 --> 00:32:47,940 Vale 802 00:32:47,940 --> 00:32:50,660 Pero, cuidado 803 00:32:50,660 --> 00:32:55,450 Cuidado 804 00:32:55,450 --> 00:32:57,210 Y esto lo tenéis que grabar en la cabeza 805 00:32:57,210 --> 00:32:59,289 no se comparan 806 00:32:59,289 --> 00:33:01,569 la comparación de igualdad 807 00:33:01,569 --> 00:33:02,990 si un objeto es igual que otro 808 00:33:02,990 --> 00:33:04,869 sea string, sea el que sea 809 00:33:04,869 --> 00:33:07,109 nunca jamás se haría con esto 810 00:33:07,109 --> 00:33:08,569 nunca jamás se hace con eso 811 00:33:08,569 --> 00:33:10,769 el doble igual vale solo 812 00:33:10,769 --> 00:33:14,130 para ver si son iguales variables primitivas 813 00:33:14,130 --> 00:33:15,210 solo para eso 814 00:33:15,210 --> 00:33:16,809 si un int es igual a un int 815 00:33:16,809 --> 00:33:18,210 si un char es igual a un char 816 00:33:18,210 --> 00:33:21,109 solo para ver si dos variables primitivas son iguales 817 00:33:21,109 --> 00:33:23,470 cuando las variables 818 00:33:23,470 --> 00:33:24,890 son variables de tipo objeto 819 00:33:24,890 --> 00:33:26,150 y el string lo es 820 00:33:26,150 --> 00:33:28,410 nunca se las compara con doble igual 821 00:33:28,410 --> 00:33:30,230 sino que se las compara 822 00:33:30,230 --> 00:33:32,589 llamando a una acción 823 00:33:32,589 --> 00:33:34,250 que es la que se encarga 824 00:33:34,250 --> 00:33:35,349 de hacer la igualdad 825 00:33:35,349 --> 00:33:38,890 así si se compara 826 00:33:38,890 --> 00:33:39,970 que esta variable 827 00:33:39,970 --> 00:33:41,089 objeto string 828 00:33:41,089 --> 00:33:43,990 sea igual a esta otra variable 829 00:33:43,990 --> 00:33:44,670 objeto string 830 00:33:44,670 --> 00:33:47,430 te devuelve true si son iguales 831 00:33:47,430 --> 00:33:48,690 o false si no 832 00:33:48,690 --> 00:33:54,660 es que es completamente 833 00:33:54,660 --> 00:33:56,220 porque es muy distinto 834 00:33:56,220 --> 00:33:57,700 vamos a poner las dos expresiones 835 00:33:57,700 --> 00:34:02,240 Vamos a poner las dos expresiones 836 00:34:02,240 --> 00:34:04,160 Que vais a entender la diferencia 837 00:34:04,160 --> 00:34:06,740 Porque no tiene nada que ver 838 00:34:06,740 --> 00:34:10,789 Hacer esto con hacer esto 839 00:34:10,789 --> 00:34:11,730 Y esta es la base 840 00:34:11,730 --> 00:34:14,590 De la programación de entrada de objetos 841 00:34:14,590 --> 00:34:15,230 En realidad 842 00:34:15,230 --> 00:34:17,750 Y de no entenderlo muy bien 843 00:34:17,750 --> 00:34:19,349 Más adelante, ya estamos con objetos 844 00:34:19,349 --> 00:34:20,590 Pueden ser unos errores que no veas 845 00:34:20,590 --> 00:34:22,409 Vosotros diríais 846 00:34:22,409 --> 00:34:26,349 Que esto de arriba en realidad es esto de abajo 847 00:34:26,349 --> 00:34:27,949 ¿Por qué inventarse otra forma? 848 00:34:28,849 --> 00:34:30,510 Porque esto de arriba no es esto de abajo 849 00:34:30,510 --> 00:34:31,590 Son dos formas 850 00:34:31,590 --> 00:34:33,690 es distinto, ¿y por qué es distinto? 851 00:34:34,329 --> 00:34:36,070 vamos a ver, vamos a 852 00:34:36,070 --> 00:34:37,329 poner el paint 853 00:34:37,329 --> 00:34:41,929 ¿por qué es distinto? 854 00:34:42,829 --> 00:34:45,050 el paint, a ver, se ve, ¿no? 855 00:34:45,750 --> 00:34:46,329 a ver 856 00:34:46,329 --> 00:34:49,369 yo tengo aquí 857 00:34:49,369 --> 00:34:50,989 una variable string nombre 858 00:34:50,989 --> 00:34:56,179 vale, que es 859 00:34:56,179 --> 00:35:01,219 esta, ahí 860 00:35:01,219 --> 00:35:02,139 vale 861 00:35:02,139 --> 00:35:05,539 ¿qué tengo cuando tengo una variable objeto 862 00:35:05,539 --> 00:35:07,340 string? ya lo hemos dicho lo que teníamos 863 00:35:07,340 --> 00:35:08,599 que tenemos en realidad 864 00:35:08,599 --> 00:35:11,320 una dirección de memoria, tenemos esto 865 00:35:11,320 --> 00:35:13,179 y la verdadera variable 866 00:35:13,179 --> 00:35:15,219 en este caso las cadenas de caracteres 867 00:35:15,219 --> 00:35:17,300 están aquí, aquí está la nita 868 00:35:17,300 --> 00:35:18,739 aquí está la nita 869 00:35:18,739 --> 00:35:20,679 nombre, tira dirección de memoria 870 00:35:20,679 --> 00:35:22,340 vale, ahora ponemos nombre2 871 00:35:22,340 --> 00:35:25,340 vale, pues nombre2 872 00:35:25,340 --> 00:35:26,579 estará aquí 873 00:35:26,579 --> 00:35:29,000 ah, te va a medir 874 00:35:29,000 --> 00:35:31,300 si la cantidad de memoria usada 875 00:35:31,300 --> 00:35:31,659 es igual 876 00:35:31,659 --> 00:35:34,300 no, no exactamente 877 00:35:34,300 --> 00:35:36,619 ay que pena, bueno se ve ¿no? 878 00:35:36,619 --> 00:35:42,500 Es que ya volver a situar ese 879 00:35:42,500 --> 00:35:43,579 Ya va a ser muy complicado 880 00:35:43,579 --> 00:35:50,940 Bueno, da igual, se ve que es nombre 2 881 00:35:50,940 --> 00:35:52,400 ¿No? Ese... Vale 882 00:35:52,400 --> 00:35:54,280 ¿Nombre 2 qué es? En realidad 883 00:35:54,280 --> 00:35:56,420 Nombre 2 es la dirección de memoria 884 00:35:56,420 --> 00:35:58,400 De otro sitio en la RAM 885 00:35:58,400 --> 00:35:59,760 Donde está 886 00:35:59,760 --> 00:36:01,840 La otra sucesión de cadenas 887 00:36:01,840 --> 00:36:04,440 ¿Vale? Está claro que esto es lo que 888 00:36:04,440 --> 00:36:06,380 Tenemos físicamente cuando 889 00:36:06,380 --> 00:36:08,340 Declaramos un string nombre y string 890 00:36:08,340 --> 00:36:10,360 Nombre 2, cuando declaramos 891 00:36:10,360 --> 00:36:11,500 String nombre tenemos 892 00:36:11,500 --> 00:36:14,099 bajo nombre la dirección 893 00:36:14,099 --> 00:36:16,179 de memoria que está apuntando 894 00:36:16,179 --> 00:36:17,039 al contenido 895 00:36:17,039 --> 00:36:19,940 y bajo nombre 2 tenemos la dirección 896 00:36:19,940 --> 00:36:22,099 de memoria que está apuntando al contenido, la cadena 897 00:36:22,099 --> 00:36:23,920 vale, pues cuando 898 00:36:23,920 --> 00:36:24,539 hacemos 899 00:36:24,539 --> 00:36:27,639 es para que se apunte a la misma 900 00:36:27,639 --> 00:36:29,579 igual, igual, exacto, a ver 901 00:36:29,579 --> 00:36:30,860 cuando hacemos nombre 902 00:36:30,860 --> 00:36:34,280 igual a nombre 2 903 00:36:34,280 --> 00:36:35,940 cuando hacemos 904 00:36:35,940 --> 00:36:37,980 esta sentencia, esta condición 905 00:36:37,980 --> 00:36:40,099 ¿qué estamos haciendo con esta 906 00:36:40,099 --> 00:36:42,119 condición, ver si esta 907 00:36:42,119 --> 00:36:43,320 dirección es igual a esta 908 00:36:43,320 --> 00:36:45,320 eso no nos importa nada 909 00:36:45,320 --> 00:36:48,239 no nos importa nada, lo que queremos ver 910 00:36:48,239 --> 00:36:50,059 es si la cadena de caracteres 911 00:36:50,059 --> 00:36:52,320 que hay aquí es igual que la cadena de caracteres 912 00:36:52,320 --> 00:36:53,760 que hay aquí, eso es lo que queremos ver 913 00:36:53,760 --> 00:36:56,139 porque aquí puede haber Anitta 914 00:36:56,139 --> 00:36:57,219 y aquí Anitta 915 00:36:57,219 --> 00:36:59,880 pero si yo hago nombre doble igual 916 00:36:59,880 --> 00:37:01,619 nombre dos, me va a decir 917 00:37:01,619 --> 00:37:03,400 las direcciones de memoria 918 00:37:03,400 --> 00:37:05,900 son distintas, porque es lo que compara 919 00:37:05,900 --> 00:37:07,519 compara la propia variable 920 00:37:07,519 --> 00:37:08,940 y la variable tiene la dirección 921 00:37:08,940 --> 00:37:11,019 Entonces el doble igual 922 00:37:11,019 --> 00:37:13,880 Te está comparando el contenido de la variable 923 00:37:13,880 --> 00:37:14,960 Y el contenido es la dirección 924 00:37:14,960 --> 00:37:17,719 No queremos comparar las direcciones 925 00:37:17,719 --> 00:37:20,059 Queremos comparar que el contenido 926 00:37:20,059 --> 00:37:21,219 Lo que apunta 927 00:37:21,219 --> 00:37:23,179 Sea igual 928 00:37:23,179 --> 00:37:24,699 A lo que apunta 929 00:37:24,699 --> 00:37:27,039 ¿Puede estar duplicado? 930 00:37:27,179 --> 00:37:28,340 Sí, pero a nosotros no nos importa 931 00:37:28,340 --> 00:37:29,840 Lo que nos importa es que sea el mismo texto 932 00:37:29,840 --> 00:37:32,639 Entonces en ese caso 933 00:37:32,639 --> 00:37:33,940 Nunca haríamos esto 934 00:37:33,940 --> 00:37:40,820 Haríamos esto otro que os he dicho 935 00:37:40,820 --> 00:37:47,019 vale 936 00:37:47,019 --> 00:37:48,340 y esto 937 00:37:48,340 --> 00:37:52,519 ahora ya sí, esto es un comportamiento 938 00:37:52,519 --> 00:37:54,239 una acción a la que llama esta variable 939 00:37:54,239 --> 00:37:56,539 y esta acción ya implica muchas cosas 940 00:37:56,539 --> 00:37:58,059 esta acción implica 941 00:37:58,059 --> 00:38:00,380 vete a la dirección a donde apunta 942 00:38:00,380 --> 00:38:02,039 nombre, ahora 943 00:38:02,039 --> 00:38:04,480 vete a la dirección a donde apunta nombre 2 944 00:38:04,480 --> 00:38:06,219 cuando tengas esas dos cadenas 945 00:38:06,219 --> 00:38:08,679 mira a ver si son iguales char por char 946 00:38:08,679 --> 00:38:10,559 uno tras otro, pin, pin, pin 947 00:38:10,559 --> 00:38:12,480 mira a ver si son iguales 948 00:38:12,480 --> 00:38:26,860 Y si son iguales todos los char, devuelve true. Eso es todo lo que hace esto, que es un montón de cosas. Sin embargo, el doble igual no hacía nada de eso. El doble igual decía, oye, lo que hay bajo este nombre es igual que lo que hay bajo este nombre. 949 00:38:26,860 --> 00:38:43,579 No, ya está. Pero esa acción no nos interesa para nada. Nos interesa esta otra. Ver si esta cadena de caracteres es igual, chara, chara, esta otra. Pues eso hay que construirlo mediante una acción. Y esa acción está construida con este nombrecito. 950 00:38:43,579 --> 00:38:45,099 está construida con ese nombre 951 00:38:45,099 --> 00:38:46,159 vale 952 00:38:46,159 --> 00:38:53,079 vale, pues entonces 953 00:38:53,079 --> 00:38:55,880 ahora mismo serían 954 00:38:55,880 --> 00:39:00,460 estos tres 955 00:39:00,460 --> 00:39:02,059 estas tres acciones 956 00:39:02,059 --> 00:39:04,260 podemos irlas llamando métodos ya 957 00:39:04,260 --> 00:39:06,340 para usar lenguaje técnico un poco más 958 00:39:06,340 --> 00:39:07,820 estos tres métodos 959 00:39:07,820 --> 00:39:10,039 el charat, el length y el equals 960 00:39:10,039 --> 00:39:12,199 los que más nos importan de string 961 00:39:12,199 --> 00:39:30,800 ¿Vale? Los que más nos importan porque para ser operativos desde ya y poder hacer pequeñas cositas en nuestros programas, pues que menos que poder acceder a la posición, al carácter de una posición, saber la longitud para no pasarnos y ver si una cadena es igual a otra. 962 00:39:30,800 --> 00:39:35,760 que hay más métodos 963 00:39:35,760 --> 00:39:37,500 por supuesto, hay tropecientos mil 964 00:39:37,500 --> 00:39:38,960 están todos ahí 965 00:39:38,960 --> 00:39:41,460 y en el aula virtual 966 00:39:41,460 --> 00:39:43,539 en el aula virtual 967 00:39:43,539 --> 00:39:45,360 he puesto una 968 00:39:45,360 --> 00:39:47,820 donde pone ejercicios para practicar 969 00:39:47,820 --> 00:39:48,739 con métodos de stream 970 00:39:48,739 --> 00:39:51,340 pues hay ahí unos pequeños ejercicios 971 00:39:51,340 --> 00:39:53,280 que son simplemente 972 00:39:53,280 --> 00:39:54,199 para 973 00:39:54,199 --> 00:39:57,619 usar diferentes métodos que tiene 974 00:39:57,619 --> 00:39:58,920 por si uno los quiere usar 975 00:39:58,920 --> 00:40:00,840 pero ahora mismo no nos importa 976 00:40:00,840 --> 00:40:03,460 ni os voy a examinar 977 00:40:03,460 --> 00:40:04,280 el examen del 11 978 00:40:04,280 --> 00:40:08,039 el examen sorpresa del viernes 11 979 00:40:08,039 --> 00:40:09,980 no va a ser de esos métodos 980 00:40:09,980 --> 00:40:10,840 de string para nada 981 00:40:10,840 --> 00:40:13,400 estos tres básicos sí que pueden 982 00:40:13,400 --> 00:40:14,679 estos tres básicos sí 983 00:40:14,679 --> 00:40:17,219 porque es que esto es para cualquier cosa que hagamos 984 00:40:17,219 --> 00:40:18,800 que involucre una cadera va a hacer falta 985 00:40:18,800 --> 00:40:20,579 pero los demás ya son 986 00:40:20,579 --> 00:40:23,519 pero los demás poco a poco 987 00:40:23,519 --> 00:40:25,679 si no se va familiarizando a incorporarlos mejor 988 00:40:25,679 --> 00:40:26,780 ¿vale? 989 00:40:28,920 --> 00:40:32,420 Vale, vale. Bueno, a ver, que estáis recogiendo muy rápido. 990 00:40:34,000 --> 00:40:35,239 Bueno, venga, anda, nada, ya.