1 00:00:00,880 --> 00:00:06,740 Vale, todo lo que decís a partir de ahora será grabado 2 00:00:06,740 --> 00:00:11,039 Y asumimos que me dais vuestro consentimiento para que sea grabado 3 00:00:11,039 --> 00:00:16,199 Vale, entonces, decíamos la última vez que estamos hablando de organización de código 4 00:00:16,199 --> 00:00:21,460 Que existían los packages, vale, que permiten pillar varias clases 5 00:00:21,460 --> 00:00:29,500 Y hacer una estructura, un conjunto, vale, y tenerlos juntos en un paquete de clases 6 00:00:29,500 --> 00:00:33,039 Por ahora es solo para organización de código 7 00:00:33,039 --> 00:00:35,759 Luego a lo mejor usos más avanzados lo veremos más en el futuro 8 00:00:35,759 --> 00:00:39,100 Lo que sí me interesa es el concepto de overloading 9 00:00:39,100 --> 00:00:44,460 Existen dos conceptos en un cierto sentido relacionados 10 00:00:44,460 --> 00:00:47,880 Pero no, uno es overload, otro es overwrite 11 00:00:47,880 --> 00:00:50,280 Pero el overwrite lo veremos más adelante 12 00:00:50,280 --> 00:00:51,719 Por ahora es el overload 13 00:00:51,719 --> 00:00:55,380 Cuando se habla de overloading, que ya lo hemos visto anteriormente 14 00:00:55,380 --> 00:01:01,560 rápidamente es que un mismo método se puede sobrecargar eso quiere decir cuando tengo un 15 00:01:01,560 --> 00:01:08,379 método que tiene un determinado nombre el cálculo área el área lo puedo sobrecargar y hacer que de 16 00:01:08,379 --> 00:01:15,480 este método área haya varias versiones vale haya un área que no pilla nada de parámetros hay un 17 00:01:15,480 --> 00:01:21,180 área que pilla el lado hay un área que pilla el lado en la altura hay un área que pilla al lado 18 00:01:21,180 --> 00:01:29,640 altura y no sé otra cosa vale el concepto es que el mismo método llamado igual puede tener 19 00:01:29,640 --> 00:01:39,060 varias versiones que se diferencian en el número y tipo de parámetros que recibe es fundamental 20 00:01:39,060 --> 00:01:47,719 que cada método de este tipo de cada sobrecarga de este método tenga un número o un número 21 00:01:47,719 --> 00:01:51,519 diferente, lo pone aquí, o el número de parámetros de entrada son diferentes 22 00:01:51,519 --> 00:01:55,319 o el tipo de algunos de los parámetros son diferentes 23 00:01:55,319 --> 00:01:58,040 o una combinación de los dos anteriores 24 00:01:58,040 --> 00:02:03,319 el concepto es que cuando yo llamo ese método y le paso 25 00:02:03,319 --> 00:02:07,180 ciertos parámetros, el compilador, el 26 00:02:07,180 --> 00:02:11,919 Java Internet Machine o quien lo ejecute, tiene que saber en ese instante 27 00:02:11,919 --> 00:02:14,900 cual de las varias versiones, cual de las varias 28 00:02:14,900 --> 00:02:17,259 métodos sobrecargados voy a utilizar 29 00:02:17,259 --> 00:02:19,199 tiene que ser seguro 30 00:02:19,199 --> 00:02:21,259 entonces si yo tengo un método 31 00:02:21,259 --> 00:02:23,960 que tiene int e int 32 00:02:23,960 --> 00:02:25,599 y hace una cosa 33 00:02:25,599 --> 00:02:27,520 y otro método que tuviera int e int 34 00:02:27,520 --> 00:02:29,460 lo mismo y tiene que hacer una cosa distinta 35 00:02:29,460 --> 00:02:30,780 no puede funcionar 36 00:02:30,780 --> 00:02:33,280 porque cuando a mi me pasan 3 y 7 37 00:02:33,280 --> 00:02:35,460 yo no sé si usar la primera o la segunda 38 00:02:35,460 --> 00:02:37,400 versión ¿vale? asumiendo que 39 00:02:37,400 --> 00:02:38,180 tenga el mismo nombre 40 00:02:38,180 --> 00:02:40,180 tengo un ejemplo 41 00:02:40,180 --> 00:02:43,719 vamos a hacer un ejemplo 42 00:02:43,719 --> 00:02:45,879 Básico 43 00:02:45,879 --> 00:02:51,580 Imaginémonos que yo tenga 44 00:02:51,580 --> 00:02:59,460 Public 45 00:02:59,460 --> 00:03:01,199 Void 46 00:03:01,199 --> 00:03:02,979 Método 47 00:03:02,979 --> 00:03:05,180 Así, ¿vale? 48 00:03:05,280 --> 00:03:06,060 Que hace algo 49 00:03:06,060 --> 00:03:12,080 Yo puedo sobrecargar este método 50 00:03:12,080 --> 00:03:13,520 Diciendo, vale 51 00:03:13,520 --> 00:03:15,699 Hay otro método que se llama 52 00:03:15,699 --> 00:03:18,020 Igual, ¿vale? Pero pilla un entero 53 00:03:18,020 --> 00:03:21,900 Algo 54 00:03:21,900 --> 00:03:25,659 Al ser posible 55 00:03:25,659 --> 00:03:27,620 Usando X 56 00:03:27,620 --> 00:03:32,039 Es muy mala programación 57 00:03:32,039 --> 00:03:34,199 Tener dos métodos que hagan 58 00:03:34,199 --> 00:03:36,120 Cosas distintas y se llaman igual 59 00:03:36,120 --> 00:03:37,620 Pero a uno le pongo Y 60 00:03:37,620 --> 00:03:40,280 Para poder sobrecargar y luego X no lo usa aquí dentro 61 00:03:40,280 --> 00:03:42,280 Si te lo paso es porque 62 00:03:42,280 --> 00:03:42,900 Tú hagas algo 63 00:03:42,900 --> 00:03:46,280 Entonces, puedo crear 64 00:03:46,280 --> 00:03:47,879 De estos cuanto me da la gana 65 00:03:47,879 --> 00:03:49,740 Siempre y cuando o cambia 66 00:03:49,740 --> 00:03:50,860 El tipo 67 00:03:50,860 --> 00:03:57,080 O cambiar el número de parámetros 68 00:03:57,080 --> 00:03:58,680 ¿Vale? Por ejemplo 69 00:03:58,680 --> 00:04:15,340 Mientras que yo cambie 70 00:04:15,340 --> 00:04:19,019 Número de parámetros 71 00:04:19,019 --> 00:04:21,259 O tipo de parámetros 72 00:04:21,259 --> 00:04:23,259 Puedo hacer lo que me da la gana 73 00:04:23,259 --> 00:04:25,839 Y meter el mismo método 74 00:04:25,839 --> 00:04:27,100 Utilizando también 75 00:04:27,100 --> 00:04:29,839 La idea es que si se llaman igual 76 00:04:29,839 --> 00:04:32,579 Es porque hacen algo bastante parecido 77 00:04:32,579 --> 00:04:33,180 ¿Vale? 78 00:04:33,180 --> 00:04:35,439 Calcular área, calculará una área 79 00:04:35,439 --> 00:04:36,180 ¿Vale? 80 00:04:36,639 --> 00:04:41,480 Esto lo hará del método del mismo objeto 81 00:04:41,480 --> 00:04:43,000 Este de aquí del mismo objeto 82 00:04:43,000 --> 00:04:45,199 Pero utilizará este x para algo 83 00:04:45,199 --> 00:04:46,160 No lo sé, ¿vale? 84 00:04:47,139 --> 00:04:48,519 Es un ejemplo abstracto 85 00:04:48,519 --> 00:04:50,060 Esto utilizará el double 86 00:04:50,060 --> 00:04:51,379 Esto utilizará el double o el int 87 00:04:51,379 --> 00:04:52,480 No lo sé, ¿vale? 88 00:04:52,620 --> 00:04:53,660 Pero lo tiene que utilizar 89 00:04:53,660 --> 00:04:54,959 Y si se llaman iguales 90 00:04:54,959 --> 00:04:56,860 Porque son el mismo método 91 00:04:56,860 --> 00:04:58,040 Es una sobrecarga o un método 92 00:04:58,040 --> 00:05:00,639 No tendría sentido que esto haga una cosa 93 00:05:00,639 --> 00:05:01,620 Y esto haga una cosa 94 00:05:01,620 --> 00:05:03,040 Que no tiene nada que ver con el otro 95 00:05:03,040 --> 00:05:04,899 ¿Vale? Entonces se llaman los distintos 96 00:05:04,899 --> 00:05:05,759 Y ya está 97 00:05:05,759 --> 00:05:08,720 Si esto calcula la área y esto calcula el perímetro 98 00:05:08,720 --> 00:05:10,560 Pues se llama la cálcula de área y la cálcula de perímetro 99 00:05:10,560 --> 00:05:12,600 No hagas que se llaman los dos cálcula 100 00:05:12,600 --> 00:05:14,540 Y uno a cálcula de área y uno a cálcula de perímetro 101 00:05:14,540 --> 00:05:16,079 Es mala programación 102 00:05:16,079 --> 00:05:17,800 ¿Sí? ¿Se entiende? 103 00:05:18,360 --> 00:05:19,560 Lo que no puede hacer 104 00:05:19,560 --> 00:05:23,339 Es sobrecargar así 105 00:05:23,339 --> 00:05:28,589 Ya está 106 00:05:28,589 --> 00:05:30,629 Esto no funciona bien 107 00:05:30,629 --> 00:05:32,370 ¿Vale? Porque cuando yo 108 00:05:32,370 --> 00:05:34,170 En algún lado llamo 109 00:05:34,170 --> 00:05:36,629 Método, objeto 110 00:05:36,629 --> 00:05:38,310 ¿Vale? Porque no es estático 111 00:05:38,310 --> 00:05:39,990 Objeto punto método 112 00:05:39,990 --> 00:05:42,230 De tres 113 00:05:42,230 --> 00:05:42,730 De dos 114 00:05:42,730 --> 00:05:46,920 ¿Qué voy a ejecutar? 115 00:05:47,120 --> 00:05:49,639 ¿Este código o este código? 116 00:05:51,079 --> 00:05:52,040 No se puede saber 117 00:05:52,040 --> 00:05:53,439 Porque aquí me están pasando un entero 118 00:05:53,439 --> 00:05:54,980 Entonces 119 00:05:54,980 --> 00:05:56,839 Hay este método aquí que pilla un entero 120 00:05:56,839 --> 00:05:58,220 Este método aquí que pilla un entero 121 00:05:58,220 --> 00:05:59,660 Uno de los dos me vale 122 00:05:59,660 --> 00:06:01,699 Pero es que no sé cuál 123 00:06:01,699 --> 00:06:04,480 Y si no es determinista la elección 124 00:06:04,480 --> 00:06:05,500 Pues no me vale 125 00:06:05,500 --> 00:06:08,759 En cualquier momento 126 00:06:08,759 --> 00:06:10,579 El procesador o quien por él 127 00:06:10,579 --> 00:06:12,800 Tiene que saber que va a ejecutar 128 00:06:12,800 --> 00:06:15,160 Y así tú le estás haciendo una cosa ambigua 129 00:06:15,160 --> 00:06:16,139 Hay dos opciones 130 00:06:16,139 --> 00:06:18,139 Y podría elegir cualquiera de las dos 131 00:06:18,139 --> 00:06:19,500 Porque a cualquiera de las dos le vale 132 00:06:19,500 --> 00:06:21,579 Eso no se puede hacer 133 00:06:21,579 --> 00:06:26,199 En un cierto sentido 134 00:06:26,199 --> 00:06:27,639 Hacemos lo mismo con los 135 00:06:27,639 --> 00:06:29,779 Constructores 136 00:06:29,779 --> 00:06:32,079 Son sobrecargados también 137 00:06:32,079 --> 00:06:34,600 Porque puede tener un constructor sin ningún parámetro 138 00:06:34,600 --> 00:06:35,620 Un constructor 139 00:06:35,620 --> 00:06:37,800 Con varios parámetros 140 00:06:37,800 --> 00:06:39,259 Un constructor con un parámetro solo 141 00:06:39,259 --> 00:06:41,500 Y el resto veo que hago, etc, etc 142 00:06:41,500 --> 00:06:43,040 ¿Dudas? 143 00:06:45,379 --> 00:06:45,860 Vale 144 00:06:45,860 --> 00:06:50,379 Tened en cuenta que lo que devuelve 145 00:06:50,379 --> 00:06:52,220 No es parte 146 00:06:52,220 --> 00:06:53,379 De la sobrecarga, es decir 147 00:06:53,379 --> 00:06:55,500 Si esto dice, esto devuelve void 148 00:06:55,500 --> 00:06:57,079 Esto devuelve int, son distintos 149 00:06:57,079 --> 00:06:58,740 No, porque es lo mismo 150 00:06:58,740 --> 00:07:00,040 Cuando yo lo llamo 151 00:07:00,040 --> 00:07:03,620 No sé si este método de aquí que recibe un intero 152 00:07:03,620 --> 00:07:04,740 Es este o este de aquí 153 00:07:04,740 --> 00:07:07,620 Independientemente de que luego devuelva o no devuelva 154 00:07:07,620 --> 00:07:07,819 ¿Sí? 155 00:07:08,139 --> 00:07:11,660 Entonces, digamos que para la sobrecarga lo que cuenta es 156 00:07:11,660 --> 00:07:14,639 El número de parámetros y el nombre 157 00:07:14,639 --> 00:07:17,680 Porque si son nombres distintos ya no está sobrecargando 158 00:07:17,680 --> 00:07:21,740 Y el tipo de parámetros y el nombre de parámetros 159 00:07:21,740 --> 00:07:22,279 ¿Vale? 160 00:07:22,379 --> 00:07:25,740 Lo que viene a ser lo que se llama, se conoce como firma 161 00:07:25,740 --> 00:07:26,959 ¿Vale? 162 00:07:27,000 --> 00:07:31,139 La firma de un método es su nombre y los parámetros que recibe 163 00:07:31,139 --> 00:07:33,160 Y tiene que ser única 164 00:07:33,160 --> 00:07:38,839 Todo esto, tanto porque ya estamos 165 00:07:38,839 --> 00:07:41,060 Es el prototipo 166 00:07:41,060 --> 00:07:42,600 Cuando yo hablo del prototipo 167 00:07:42,600 --> 00:07:44,459 De un método, es este de aquí 168 00:07:44,459 --> 00:07:47,040 Si es público, privado 169 00:07:47,040 --> 00:07:49,019 Lo que sea, lo que devuelve 170 00:07:49,019 --> 00:07:50,959 Como se llama y los parámetros que pide 171 00:07:50,959 --> 00:07:52,519 Prototipo 172 00:07:52,519 --> 00:07:54,899 Este de aquí, en un cierto sentido 173 00:07:54,899 --> 00:07:55,779 Sería la firma 174 00:07:55,779 --> 00:07:58,480 Y se puede sobrecargar 175 00:07:58,480 --> 00:07:59,220 Dudas 176 00:07:59,220 --> 00:08:04,920 Creo que alguna vez lo hemos hecho 177 00:08:04,920 --> 00:08:06,980 Con los constructores seguramente 178 00:08:06,980 --> 00:08:08,879 con los métodos, no sé si hemos llegado 179 00:08:08,879 --> 00:08:10,600 a hacer algún ejemplo, puede ser 180 00:08:10,600 --> 00:08:12,199 con algún método de nombre y tal 181 00:08:12,199 --> 00:08:13,040 lo de anónimo 182 00:08:13,040 --> 00:08:15,879 por ejemplo, vale 183 00:08:15,879 --> 00:08:18,899 y ya está 184 00:08:18,899 --> 00:08:20,759 entonces, luego, bueno, se ha empezado 185 00:08:20,759 --> 00:08:21,879 la creación de código 186 00:08:21,879 --> 00:08:24,939 organizarse, los paquetes 187 00:08:24,939 --> 00:08:26,540 pueden estar un paquete dentro de un paquete 188 00:08:26,540 --> 00:08:28,560 dentro de un paquete, es algo parecido a lo que 189 00:08:28,560 --> 00:08:31,279 funciona en un sistema operativo con las carpetas 190 00:08:31,279 --> 00:08:32,179 de hecho 191 00:08:32,179 --> 00:08:34,179 los paquetes que yo creo, luego 192 00:08:34,179 --> 00:08:36,379 en SRC, en la carpeta SRC 193 00:08:36,379 --> 00:08:38,259 Se crean como carpetas ahí dentro 194 00:08:38,259 --> 00:08:41,019 Pero cuando me quiero referenciar a alguno de ellos 195 00:08:41,019 --> 00:08:44,000 No uso la barra como en el sistema operativo 196 00:08:44,000 --> 00:08:44,879 Sino uso los puntos 197 00:08:44,879 --> 00:08:50,179 Cuando nosotros hacemos import java.util.scanner 198 00:08:50,179 --> 00:08:53,039 Lo que estamos haciendo es pillar el paquete java 199 00:08:53,039 --> 00:08:56,100 Entrar en el subpaquete útil 200 00:08:56,100 --> 00:08:57,559 Y dentro del subpaquete útil 201 00:08:57,559 --> 00:08:59,899 Si pongo asterisco pillo todo el subpaquete 202 00:08:59,899 --> 00:09:02,840 Si pongo scanner pillo solo la clase scanner 203 00:09:02,840 --> 00:09:03,519 Por ejemplo, ¿vale? 204 00:09:03,820 --> 00:09:05,700 Pero esto lo veremos en un futuro 205 00:09:05,700 --> 00:09:10,340 Y también está la variable classpath que la hemos configurado al principio 206 00:09:10,340 --> 00:09:11,519 Hemos ya hablado un poquito de esto 207 00:09:11,519 --> 00:09:15,940 Pero estas cosas luego son muy genéricas 208 00:09:15,940 --> 00:09:18,740 Lo veis esto que tanto viene en el vídeo 209 00:09:18,740 --> 00:09:25,419 Pero luego cuando sirven de verdad ya nos pondremos y profundizaremos allí 210 00:09:25,419 --> 00:09:26,200 Por ahora no 211 00:09:26,200 --> 00:09:29,580 Lo que sí me interesa ahora y a un poquito hablar 212 00:09:29,580 --> 00:09:32,539 Es lo que se llama encapsulación y visibilidad 213 00:09:32,539 --> 00:09:37,779 Es decir, las palabritas está public, protected, packaged, private, ¿vale? 214 00:09:38,620 --> 00:09:47,659 Nosotros por ahora hemos casi siempre utilizado en los ejemplos que hemos hecho public o nada, ¿vale? 215 00:09:48,059 --> 00:09:52,460 Aquí public, algunos ejemplitos que hemos puesto no hemos puesto nada, ¿vale? 216 00:09:52,919 --> 00:09:55,779 Pero no sabemos qué quiere decir, ¿vale? 217 00:09:55,779 --> 00:10:06,360 Entonces, la idea es qué visibilidad tiene este elemento de código que yo voy a crear, ¿vale? 218 00:10:06,600 --> 00:10:14,039 Public, private se puede poner en clases, se puede poner en variables, se puede poner en métodos, ¿vale? 219 00:10:14,460 --> 00:10:20,139 Es decir, que nosotros donde hemos visto public, para hacer un ejemplo aquí, lo hemos visto cuando declaramos una clase, 220 00:10:20,139 --> 00:10:22,899 clase pública, cuando declaramos 221 00:10:22,899 --> 00:10:23,960 por ejemplo un 222 00:10:23,960 --> 00:10:26,460 constructor, cuando declaramos 223 00:10:26,460 --> 00:10:28,419 un método, cuando construyamos 224 00:10:28,419 --> 00:10:29,179 una 225 00:10:29,179 --> 00:10:32,279 variable, la podemos declarar public 226 00:10:32,279 --> 00:10:34,179 también, o nada, o lo que sea, ¿vale? 227 00:10:34,700 --> 00:10:35,679 ¿Más public entonces? 228 00:10:36,059 --> 00:10:38,240 No, no, no, son dos cosas distintas, ahora 229 00:10:38,240 --> 00:10:40,340 lo vamos a ver, ¿vale? Pero aquí puedo poner 230 00:10:40,340 --> 00:10:42,039 public int ancho 231 00:10:42,039 --> 00:10:44,460 o int ancho, o protect int 232 00:10:44,460 --> 00:10:46,240 ancho, o private int ancho 233 00:10:46,240 --> 00:10:48,580 ¿vale? Es el modificador 234 00:10:48,580 --> 00:10:49,919 que se pone aquí delante 235 00:10:49,919 --> 00:10:56,919 Y repito, se puede poner en clases, variables, también en constructores y métodos 236 00:10:56,919 --> 00:10:59,740 Probablemente en otras cosas, lo veremos en el futuro 237 00:10:59,740 --> 00:11:00,899 Por ahora estas cosas aquí 238 00:11:00,899 --> 00:11:02,039 ¿Y para qué sirven? 239 00:11:02,559 --> 00:11:06,320 Sirven para dar visibilidad a esa entidad, a ese elemento 240 00:11:06,320 --> 00:11:10,820 Es decir, de dónde se puede ver ese elemento 241 00:11:10,820 --> 00:11:16,519 Dependiendo de la palabra que pongo, podré acceder a ese método, a esa variable 242 00:11:16,519 --> 00:11:20,100 Desde más o menos 243 00:11:20,100 --> 00:11:22,720 Otros sitios 244 00:11:22,720 --> 00:11:26,179 Por ejemplo, es más fácil de todo 245 00:11:26,179 --> 00:11:27,960 Public, si yo pongo public 246 00:11:27,960 --> 00:11:30,120 Cualquiera puede acceder 247 00:11:30,120 --> 00:11:31,679 A esa variable o a ese método 248 00:11:31,679 --> 00:11:33,539 Y con cualquiera quiero decir 249 00:11:33,539 --> 00:11:36,320 Código dentro de esta variable 250 00:11:36,320 --> 00:11:37,399 De esta clase 251 00:11:37,399 --> 00:11:39,960 O código desde otra clase 252 00:11:39,960 --> 00:11:41,100 ¿Sí? 253 00:11:41,580 --> 00:11:42,620 Esto, por ejemplo 254 00:11:42,620 --> 00:11:45,039 Creo que aquí tengo un problema 255 00:11:45,039 --> 00:11:48,399 Pongamos esta cosa aquí 256 00:11:48,399 --> 00:11:50,620 Aquí son dos clases distintas 257 00:11:50,620 --> 00:11:50,860 ¿Sí? 258 00:11:51,820 --> 00:11:53,500 Clase de rectángulo y la clase de rectángulo área 259 00:11:53,500 --> 00:11:57,080 Si yo este de aquí lo declaro como public int largo 260 00:11:57,080 --> 00:11:58,940 Desde aquí 261 00:11:58,940 --> 00:12:03,120 Puedo hacer tranquilamente rec1.largo 262 00:12:03,120 --> 00:12:06,490 ¿Sí? 263 00:12:07,029 --> 00:12:09,049 Porque esta variable es pública 264 00:12:09,049 --> 00:12:11,789 Se puede acceder desde cualquier clase 265 00:12:11,789 --> 00:12:14,370 Si alguien crea un rectángulo 266 00:12:14,370 --> 00:12:16,269 Está autorizado a hacer 267 00:12:16,269 --> 00:12:18,389 Rec1.largo 268 00:12:18,389 --> 00:12:19,649 ¿Vale? 269 00:12:19,730 --> 00:12:21,830 En otra clase, si vale, pero aquí acedo 270 00:12:21,830 --> 00:12:23,570 A este objeto que he creado 271 00:12:23,570 --> 00:12:25,370 Y a su variable, porque es pública 272 00:12:25,370 --> 00:12:29,090 Si este tiene 273 00:12:29,090 --> 00:12:31,250 Public quinta área, por ejemplo 274 00:12:31,250 --> 00:12:32,610 Yo puedo llamar 275 00:12:32,610 --> 00:12:35,509 Rectángulo1.area desde otra clase 276 00:12:35,509 --> 00:12:36,970 Tranquilamente, sin problemas 277 00:12:36,970 --> 00:12:38,710 ¿Vale? Cuando es público 278 00:12:38,710 --> 00:12:41,230 Puede acceder a sus métodos públicos 279 00:12:41,230 --> 00:12:43,470 O a sus variables públicas 280 00:12:43,470 --> 00:12:45,789 Desde cualquier otra clase 281 00:12:45,789 --> 00:12:47,370 Que haya creado un objeto de ese tipo 282 00:12:47,370 --> 00:12:50,629 O que haya utilizado un método estático de ese tipo 283 00:12:50,629 --> 00:12:52,669 ¿Sí? Vale 284 00:12:52,669 --> 00:12:55,710 Vamos restringiendo 285 00:12:55,710 --> 00:12:56,629 Es decir 286 00:12:56,629 --> 00:12:58,730 Si no es public 287 00:12:58,730 --> 00:13:01,450 Quiere decir que no todos pueden acceder 288 00:13:01,450 --> 00:13:01,850 ¿Vale? 289 00:13:02,110 --> 00:13:05,470 El siguiente paso es protected 290 00:13:05,470 --> 00:13:07,990 Lo pongo en rojo 291 00:13:07,990 --> 00:13:10,070 Porque para entender protected 292 00:13:10,070 --> 00:13:11,769 Nos falta un concepto 293 00:13:11,769 --> 00:13:12,750 Que es la herencia 294 00:13:12,750 --> 00:13:14,669 Que nosotros no sabemos 295 00:13:14,669 --> 00:13:16,929 entonces, mientras que no sabemos la herencia 296 00:13:16,929 --> 00:13:18,610 protected es como que 297 00:13:18,610 --> 00:13:20,750 ¿vale? pero os lo pongo aquí 298 00:13:20,750 --> 00:13:22,789 la definición en rojo para que 299 00:13:22,789 --> 00:13:24,789 quitemos el rojo cuando luego sabemos la herencia 300 00:13:24,789 --> 00:13:26,509 ¿vale? y es lo siguiente 301 00:13:26,509 --> 00:13:28,690 yo puedo acceder a esta 302 00:13:28,690 --> 00:13:30,570 variable o a este método 303 00:13:30,570 --> 00:13:33,049 solo desde clases que 304 00:13:33,049 --> 00:13:34,789 o heredan 305 00:13:34,789 --> 00:13:36,309 que es lo que no entendemos 306 00:13:36,309 --> 00:13:39,070 ¿vale? o son del mismo 307 00:13:39,070 --> 00:13:39,750 paquete 308 00:13:39,750 --> 00:13:42,850 es decir, si cuando creo las variables 309 00:13:42,850 --> 00:13:45,710 Creo un paquete que puede ser el default package 310 00:13:45,710 --> 00:13:50,190 O creo un paquetito que se llama operaciones 311 00:13:50,190 --> 00:13:52,809 Y allí dentro hay varias clases 312 00:13:52,809 --> 00:13:56,250 Cualquiera de estas clases puede acceder a una variable 313 00:13:56,250 --> 00:13:59,250 O a un método declarado como protected 314 00:13:59,250 --> 00:14:03,769 Si yo tengo dos paquetes 315 00:14:03,769 --> 00:14:05,809 Y en el paquete B 316 00:14:05,809 --> 00:14:12,269 Creo un objeto que está en el paquete A 317 00:14:12,269 --> 00:14:15,169 E intento acceder a una variable protected 318 00:14:15,169 --> 00:14:16,169 Del paquete A 319 00:14:16,169 --> 00:14:17,230 Me va a decir no 320 00:14:17,230 --> 00:14:19,970 Porque no estás en el mismo paquete 321 00:14:19,970 --> 00:14:21,950 Si no estás en el mismo paquete 322 00:14:21,950 --> 00:14:24,309 No puedes acceder a eso 323 00:14:24,309 --> 00:14:27,440 Tampoco 324 00:14:27,440 --> 00:14:31,309 Físicamente entonces los directorios 325 00:14:31,309 --> 00:14:31,889 Tienen que estar 326 00:14:31,889 --> 00:14:33,970 Al mismo nivel o por debajo 327 00:14:33,970 --> 00:14:36,190 Quien define donde estoy 328 00:14:36,190 --> 00:14:37,570 Es la primera línea 329 00:14:37,570 --> 00:14:39,490 Cuando yo creo un paquete 330 00:14:39,490 --> 00:14:41,570 Añado en la primera línea 331 00:14:41,570 --> 00:14:43,610 Package y el nombre del paquete 332 00:14:43,610 --> 00:14:52,429 Si las dos clases tienen el mismo package definido, pues son del mismo paquete, por lo tanto se pueden ver entre ellos si son protected, ¿vale? 333 00:14:52,570 --> 00:14:58,909 Si en vez tienen un package distinto, pues entonces no están en el mismo paquete y si es protected no accede, ¿vale? 334 00:14:59,269 --> 00:15:12,009 Recuerdo que protected es o hereda, ¿vale? O tiene una relación especial que nosotros no hemos visto todavía, el extend, para quien lo ha visto el año pasado, o está en el mismo paquete. 335 00:15:12,009 --> 00:15:13,389 Entonces se pueden ver, si no, no 336 00:15:13,389 --> 00:15:14,730 ¿Sí? 337 00:15:15,389 --> 00:15:17,549 La otra opción, package 338 00:15:17,549 --> 00:15:19,649 Es lo mismo que protected 339 00:15:19,649 --> 00:15:20,750 Pero sin herencia 340 00:15:20,750 --> 00:15:23,230 O sea, si están en el mismo paquete 341 00:15:23,230 --> 00:15:25,570 ¿Vale? A nosotros por ahora 342 00:15:25,570 --> 00:15:27,929 Estas dos cosas son iguales porque no sabemos que es la herencia 343 00:15:27,929 --> 00:15:29,549 ¿Vale? Entonces lo entenderemos 344 00:15:29,549 --> 00:15:31,889 Por ahora nosotros usamos public package 345 00:15:31,889 --> 00:15:32,529 O private 346 00:15:32,529 --> 00:15:33,629 ¿Sí? 347 00:15:36,549 --> 00:15:37,029 Creo 348 00:15:37,029 --> 00:15:38,870 Que siempre se me olvida 349 00:15:38,870 --> 00:15:40,590 Que si no pongo nada 350 00:15:40,590 --> 00:15:42,129 Por defecto es protected 351 00:15:42,129 --> 00:15:45,289 Entonces cuando no ponemos 352 00:15:45,289 --> 00:15:46,429 Ningún modificador 353 00:15:46,429 --> 00:15:48,710 Él asume que es protected 354 00:15:48,710 --> 00:15:51,149 Herencia y mismo paquete 355 00:15:51,149 --> 00:15:52,250 ¿Sí? 356 00:15:52,610 --> 00:15:54,830 Aún así nosotros los ejemplos que hacemos ahora 357 00:15:54,830 --> 00:15:56,330 Que trabajaremos ahora 358 00:15:56,330 --> 00:15:58,149 A principio sobre todo 359 00:15:58,149 --> 00:15:59,990 Utilizaremos public y private ¿Vale? 360 00:16:00,029 --> 00:16:02,029 Para ir a los extremos 361 00:16:02,029 --> 00:16:04,090 Luego más adelante cuando veremos un poquito 362 00:16:04,090 --> 00:16:05,690 Las cosas más complejas pues a lo mejor 363 00:16:05,690 --> 00:16:07,450 Ya empezamos a hilar más fin 364 00:16:07,450 --> 00:16:08,009 ¿Sí? 365 00:16:08,009 --> 00:16:12,970 Y el último, el más restritivo de todos es private 366 00:16:12,970 --> 00:16:17,190 El private solo se puede acceder desde la misma clase 367 00:16:17,190 --> 00:16:18,909 ¿Vale? 368 00:16:19,250 --> 00:16:22,549 Son variables que yo accedo solo desde esta clase 369 00:16:22,549 --> 00:16:24,429 No puedo acceder desde fuera 370 00:16:24,429 --> 00:16:27,409 Eso quiere decir que si yo aquí en rectángulo 371 00:16:27,409 --> 00:16:32,450 Pongo que largo es private int largo 372 00:16:32,450 --> 00:16:36,250 Desde aquí no puedo hacer recuno punto largo 373 00:16:36,250 --> 00:16:37,350 Me da error 374 00:16:37,350 --> 00:16:39,909 Porque no estoy en la misma clase 375 00:16:39,909 --> 00:16:41,629 Hasta si estuviera en el mismo paquete 376 00:16:41,629 --> 00:16:43,570 ¿Sí? 377 00:16:45,169 --> 00:16:45,970 Clipset 378 00:16:45,970 --> 00:16:58,970 Vamos a probar un poco 379 00:16:58,970 --> 00:17:05,890 Hacemos un ejercicio sencillo 380 00:17:05,890 --> 00:17:07,829 Donde probamos estas cosas 381 00:17:07,829 --> 00:17:08,089 ¿Vale? 382 00:17:09,190 --> 00:17:19,059 Vamos a crear un par de clases 383 00:17:19,059 --> 00:17:19,420 ¿Vale? 384 00:17:20,140 --> 00:17:23,220 La primera clase que creo es la clase cuenta 385 00:17:23,220 --> 00:17:27,849 Que no será 386 00:17:27,849 --> 00:17:29,289 Con el 387 00:17:29,289 --> 00:17:31,869 Me la he puesto en geometría 388 00:17:31,869 --> 00:17:33,109 Yo no la quiero en geometría 389 00:17:33,109 --> 00:17:34,589 La pongo en otro paquete 390 00:17:34,589 --> 00:17:39,670 Y luego creo 391 00:17:39,670 --> 00:17:41,849 Luego después a lo mejor jugamos con los paquetes 392 00:17:41,849 --> 00:17:42,029 ¿Vale? 393 00:17:42,750 --> 00:17:45,710 Otra clase que es main cuenta 394 00:17:45,710 --> 00:17:47,769 Para usarla 395 00:17:47,769 --> 00:17:47,950 ¿Vale? 396 00:17:49,349 --> 00:17:51,809 Entonces, ¿qué es mi clase cuenta? 397 00:17:52,450 --> 00:17:53,410 Pues mi clase cuenta 398 00:17:53,410 --> 00:17:54,990 Representa una cuenta de banco 399 00:17:54,990 --> 00:18:02,970 muy sencilla vale porque en realidad como la demo no es muy segura vale entonces una cuenta 400 00:18:02,970 --> 00:18:14,309 del banco que tiene propiedades de la cuenta del banco qué es el número un inter un string 401 00:18:14,309 --> 00:18:21,829 que queremos hacer si yo uso otra letra también puede poner string si pongo solo solo numérico 402 00:18:21,829 --> 00:18:23,769 Podría pensarlo como un int 403 00:18:23,769 --> 00:18:26,029 Para tener en cuenta que tiene poco sentido 404 00:18:26,029 --> 00:18:28,670 Por ejemplo, sumar entre ellas dos cuentas bancarias 405 00:18:28,670 --> 00:18:29,609 Entonces no es un int 406 00:18:29,609 --> 00:18:30,589 Es siempre un código 407 00:18:30,589 --> 00:18:32,950 Int 408 00:18:32,950 --> 00:18:35,130 Num cuenta 409 00:18:35,130 --> 00:18:38,109 ¿Qué más? 410 00:18:40,950 --> 00:18:41,509 Saldo 411 00:18:41,509 --> 00:18:43,289 Int saldo 412 00:18:43,289 --> 00:18:45,210 Nosotros gastamos solo euros 413 00:18:45,210 --> 00:18:46,890 Las céntimos no nos interesa 414 00:18:46,890 --> 00:18:50,710 String titular 415 00:18:50,710 --> 00:18:53,410 ¿Vale? 416 00:18:53,589 --> 00:18:56,009 y lo dejamos así, por ahora 417 00:18:56,009 --> 00:18:58,289 luego después a lo mejor le añadimos 418 00:18:58,289 --> 00:18:59,910 métodos de aumentar 419 00:18:59,910 --> 00:19:01,529 disminuir, cosas por el estilo 420 00:19:01,529 --> 00:19:03,170 entonces ahora yo tengo 421 00:19:03,170 --> 00:19:06,230 el main cuenta, que es lo que utiliza esta cuenta 422 00:19:06,230 --> 00:19:07,250 ¿qué hago? me creo 423 00:19:07,250 --> 00:19:08,710 un objeto 424 00:19:08,710 --> 00:19:11,190 cuenta 425 00:19:11,190 --> 00:19:13,589 ¿sí? entonces 426 00:19:13,589 --> 00:19:14,950 cuenta 427 00:19:14,950 --> 00:19:16,829 mi cuenta 428 00:19:16,829 --> 00:19:19,410 es igual a new 429 00:19:19,410 --> 00:19:21,910 cuenta, por defecto tiene 430 00:19:21,910 --> 00:19:22,769 Un 431 00:19:22,769 --> 00:19:24,750 ¿Cómo se llama esto? 432 00:19:25,470 --> 00:19:28,210 Un constructor por defecto 433 00:19:28,210 --> 00:19:29,569 ¿Vale? Me he creado un objeto 434 00:19:29,569 --> 00:19:31,930 ¿Sí? Y ahora tendrá 435 00:19:31,930 --> 00:19:33,069 Estas cosas aquí 436 00:19:33,069 --> 00:19:35,049 Y yo puedo hacer tranquilamente 437 00:19:35,049 --> 00:19:38,049 Mi cuenta.titular 438 00:19:38,890 --> 00:19:41,390 Es igual a yo 439 00:19:41,390 --> 00:19:48,049 Y mi cuenta.sueldo 440 00:19:48,049 --> 00:19:49,529 Saldo 441 00:19:49,529 --> 00:19:51,589 Saldo es otra cosa 442 00:19:51,589 --> 00:19:54,500 es 443 00:19:54,500 --> 00:20:00,519 calderilla 444 00:20:00,519 --> 00:20:02,440 lo que tenemos todos en nuestro 445 00:20:02,440 --> 00:20:05,039 bolsillo y mi cuenta 446 00:20:05,039 --> 00:20:06,420 punto 447 00:20:06,420 --> 00:20:08,619 que es, no mi cuenta 448 00:20:08,619 --> 00:20:12,500 es igual a 449 00:20:12,500 --> 00:20:15,960 vale 450 00:20:15,960 --> 00:20:18,079 estamos todos felices 451 00:20:18,079 --> 00:20:20,859 todos nos fiaríamos de un banco 452 00:20:20,859 --> 00:20:22,380 que tenga cuentas 453 00:20:22,380 --> 00:20:24,640 a la que cualquiera pueda acceder 454 00:20:24,640 --> 00:20:26,480 Y cambiar lo que le da la gana 455 00:20:26,480 --> 00:20:27,539 Y cambiar de titular 456 00:20:27,539 --> 00:20:29,299 Y si yo veo que tú tienes más dinero 457 00:20:29,299 --> 00:20:31,400 Pues te accedas a tu cuenta, te cambias el titular 458 00:20:31,400 --> 00:20:32,200 Y se acabó 459 00:20:32,200 --> 00:20:33,859 Ningún problema 460 00:20:33,859 --> 00:20:37,660 Y tened en cuenta que esta la puedo haber hecho yo 461 00:20:37,660 --> 00:20:38,680 Como banco 462 00:20:38,680 --> 00:20:40,319 Pero ahora la está usando 463 00:20:40,319 --> 00:20:43,079 Una aplicación externa 464 00:20:43,079 --> 00:20:44,599 De otra persona 465 00:20:44,599 --> 00:20:47,299 Que usa mi cuenta 466 00:20:47,299 --> 00:20:48,500 Del banco 467 00:20:48,500 --> 00:20:49,259 Algo para decir 468 00:20:49,259 --> 00:20:51,680 Estoy simplificando bastante 469 00:20:51,680 --> 00:20:53,720 Entonces, ¿cómo puedo evitar 470 00:20:53,720 --> 00:20:56,200 Que este señor 471 00:20:56,200 --> 00:20:58,539 Empezamos desde lo básico, ¿vale? 472 00:20:58,839 --> 00:21:00,720 Me he asignado yo mi cuenta 473 00:21:00,720 --> 00:21:03,160 Y yo decido, me gusta el 37 474 00:21:03,160 --> 00:21:04,680 Pues mi cuenta es la 37 475 00:21:04,680 --> 00:21:05,799 Ahí, ya está 476 00:21:05,799 --> 00:21:08,680 Tiene sentido 477 00:21:08,680 --> 00:21:12,440 ¿Cómo se asocia? 478 00:21:12,539 --> 00:21:14,200 ¿Cómo se crean las números de cuenta 479 00:21:14,200 --> 00:21:16,079 De un cuenta corriente? 480 00:21:16,079 --> 00:21:16,759 ¿Al actoreo? 481 00:21:17,900 --> 00:21:22,130 Al actoreo no, vale 482 00:21:22,130 --> 00:21:23,930 Yo supongo 483 00:21:23,930 --> 00:21:25,509 Que tengan un orden 484 00:21:25,509 --> 00:21:27,930 Si aquí hay mil cuentas 485 00:21:27,930 --> 00:21:30,089 El siguiente que venga tendrá la cuenta 1001 486 00:21:30,089 --> 00:21:31,730 ¿No? No sé si habrá 487 00:21:31,730 --> 00:21:32,990 Algo de 488 00:21:32,990 --> 00:21:35,750 Una parte que luego hará un código hash 489 00:21:35,750 --> 00:21:37,450 Para que sea un... 490 00:21:37,450 --> 00:21:38,930 No lo sé, hipotetizamos que 491 00:21:38,930 --> 00:21:41,569 Si yo en mi banco tengo mil cuentas, pues el siguiente 492 00:21:41,569 --> 00:21:42,910 Tiene que tener 1001 493 00:21:42,910 --> 00:21:45,430 ¿Vale? Entonces no quiero que pueda 494 00:21:45,430 --> 00:21:47,410 Él cambiársela. ¿Cómo lo hago? 495 00:21:52,359 --> 00:21:52,759 Pues 496 00:21:52,759 --> 00:21:55,460 ¿Cómo impido a que este señor 497 00:21:55,460 --> 00:21:57,019 Pueda acceder a su nueva cuenta? 498 00:21:57,019 --> 00:22:14,250 El field 499 00:22:14,250 --> 00:22:16,309 Cuenta, punto, no cuenta 500 00:22:16,309 --> 00:22:17,250 Is not visible 501 00:22:17,250 --> 00:22:18,890 No puedes 502 00:22:18,890 --> 00:22:22,569 Oye, cuidado, eh, aquí yo no estoy tocando 503 00:22:22,569 --> 00:22:24,609 Nada de seguridad informática 504 00:22:24,609 --> 00:22:26,470 O muy, muy básica, vale 505 00:22:26,470 --> 00:22:28,549 No es que los bancos están seguros 506 00:22:28,549 --> 00:22:30,509 Porque han puesto private, vale 507 00:22:30,509 --> 00:22:32,390 Hay mogollón de más 508 00:22:32,390 --> 00:22:34,069 De seguridad informática 509 00:22:34,069 --> 00:22:35,089 De criptografía 510 00:22:35,089 --> 00:22:38,509 De controles y cosas por el estilo 511 00:22:38,509 --> 00:22:39,849 Vale, pero de algo 512 00:22:39,849 --> 00:22:41,210 Tenemos que empezar, vale 513 00:22:41,210 --> 00:22:43,609 Ahora, no es tanto 514 00:22:43,609 --> 00:22:45,069 Que yo he salvado mi cuenta 515 00:22:45,069 --> 00:22:47,069 ¿Vale? Cuanto he dicho 516 00:22:47,069 --> 00:22:49,230 Oye, mira, esta variable de aquí 517 00:22:49,230 --> 00:22:50,730 Es una variable crítica 518 00:22:50,730 --> 00:22:53,569 Yo no quiero que la gente haga lo que le da 519 00:22:53,569 --> 00:22:55,269 La gana con esta variable 520 00:22:55,269 --> 00:22:57,730 Quiero que yo tenga el control sobre esta variable 521 00:22:57,730 --> 00:22:59,470 ¿Vale? Entonces 522 00:22:59,470 --> 00:23:01,769 Te voy a decir que fuera de esta clase 523 00:23:01,769 --> 00:23:03,170 Que es la que desarrollo yo 524 00:23:03,170 --> 00:23:05,569 Nadie puede tocar este 525 00:23:05,569 --> 00:23:06,069 En un cuento 526 00:23:06,069 --> 00:23:08,430 ¿Vale? He empezado por ahí 527 00:23:08,430 --> 00:23:10,970 Ahora, pero tendré que hacer algo 528 00:23:10,970 --> 00:23:12,289 con este en un cuenta 529 00:23:12,289 --> 00:23:14,990 entonces, por ejemplo, me creo 530 00:23:14,990 --> 00:23:15,710 un constructor 531 00:23:15,710 --> 00:23:23,470 fijaos, sin parámetros 532 00:23:23,470 --> 00:23:25,849 pero yo ahora quiero que 533 00:23:25,849 --> 00:23:27,490 este en un cuenta, como 534 00:23:27,490 --> 00:23:29,650 desde fuera yo no puedo crear 535 00:23:29,650 --> 00:23:31,930 un objeto cuenta y luego darle un 536 00:23:31,930 --> 00:23:33,809 número, porque ahora ya no puedo acceder 537 00:23:33,809 --> 00:23:35,630 quiero que la gestión de 538 00:23:35,630 --> 00:23:36,730 este número 539 00:23:36,730 --> 00:23:39,569 se realice desde aquí 540 00:23:39,569 --> 00:23:41,829 es decir, que 541 00:23:41,829 --> 00:23:43,950 soy yo, que cuando alguien me 542 00:23:43,950 --> 00:23:45,609 pide de crear un nuevo objeto cuenta 543 00:23:45,609 --> 00:23:47,410 Le asigno un número nuevo 544 00:23:47,410 --> 00:23:47,990 ¿Cómo lo hago? 545 00:24:06,930 --> 00:24:07,549 Estático 546 00:24:07,549 --> 00:24:10,349 Yo pondría arriba un contador estático 547 00:24:10,349 --> 00:24:17,240 ¿Cuántas cuentas? 548 00:24:31,359 --> 00:24:42,069 ¿Os gusta? 549 00:24:43,450 --> 00:24:44,970 Por ejemplo 550 00:24:44,970 --> 00:24:47,309 Entonces si yo quería la 37, ¿no? 551 00:24:47,750 --> 00:24:48,130 Vale 552 00:24:48,130 --> 00:24:51,150 Cuenta, punto 553 00:24:51,150 --> 00:24:53,509 ¿Cuántas cuentas? 554 00:24:56,069 --> 00:24:57,170 Bueno, 36 555 00:24:57,170 --> 00:25:01,319 Y ahora 556 00:25:01,319 --> 00:25:02,160 Me creo 557 00:25:02,160 --> 00:25:03,980 Mi buena 558 00:25:03,980 --> 00:25:06,640 Cuenta, ya está, ya tengo el 37 559 00:25:06,640 --> 00:25:08,039 Solucionado 560 00:25:08,039 --> 00:25:10,599 ¿Eh? ¿Era lo que queríamos? 561 00:25:11,180 --> 00:25:11,319 Sí 562 00:25:11,319 --> 00:25:12,240 Claro 563 00:25:12,240 --> 00:25:23,309 Creo que esto va por 564 00:25:23,309 --> 00:25:24,470 Al principio 565 00:25:24,470 --> 00:25:28,819 ¿Sí? O sea 566 00:25:28,819 --> 00:25:31,000 Me creo una variable de clase 567 00:25:31,000 --> 00:25:33,579 Que pero existe solo aquí dentro 568 00:25:33,579 --> 00:25:35,819 Y que nadie desde fuera 569 00:25:35,819 --> 00:25:37,500 Pueda ir a toquetear 570 00:25:37,500 --> 00:25:39,579 Porque si no, tengo un problema 571 00:25:39,579 --> 00:25:40,400 Igualmente, ¿vale? 572 00:25:40,420 --> 00:25:41,779 Y luego 573 00:25:41,779 --> 00:25:44,400 Esta de aquí 574 00:25:44,400 --> 00:25:46,380 Crea un método de crear cuenta 575 00:25:46,380 --> 00:25:47,900 Que solo 576 00:25:47,900 --> 00:25:50,400 Se toquetea esta cosa aquí dentro 577 00:25:50,400 --> 00:25:51,299 ¿Vale? Y esto 578 00:25:51,299 --> 00:25:54,079 Entonces ahora lo que he hecho es 579 00:25:54,079 --> 00:25:56,619 Que no es que esto no se pueda cambiar 580 00:25:56,619 --> 00:25:57,700 O no se pueda estanciar 581 00:25:57,700 --> 00:26:00,079 Pero se puede estanciar solo con un método 582 00:26:00,079 --> 00:26:01,579 Con un constructor en este caso 583 00:26:01,579 --> 00:26:02,799 Que he proporcionado yo 584 00:26:02,799 --> 00:26:06,079 Entonces tú vas a pasar por mis controles 585 00:26:06,799 --> 00:26:08,319 Si quieres modificar algo 586 00:26:08,319 --> 00:26:09,880 No puedes elegir tú el número que le das 587 00:26:09,880 --> 00:26:11,920 37 porque me da la gana, pues no 588 00:26:11,920 --> 00:26:13,960 soy yo que te lo doy 589 00:26:13,960 --> 00:26:16,539 si 590 00:26:16,539 --> 00:26:19,819 vale, muy bien, fenomenal 591 00:26:19,819 --> 00:26:21,519 entonces ahora tengo 592 00:26:21,519 --> 00:26:22,119 mi cuenta 593 00:26:22,119 --> 00:26:25,119 que cuando creo una cuenta 594 00:26:25,119 --> 00:26:27,440 y luego creo otra cuenta 595 00:26:27,440 --> 00:26:28,559 vale 596 00:26:28,559 --> 00:26:31,700 mi cuenta 2 597 00:26:31,700 --> 00:26:33,319 yo también 598 00:26:33,319 --> 00:26:36,960 y con saldo 599 00:26:36,960 --> 00:26:39,440 esta, un poco más 600 00:26:39,440 --> 00:26:41,940 Tengo dos cuentas 601 00:26:41,940 --> 00:26:43,059 Vale, fenomenal 602 00:26:43,059 --> 00:26:44,920 Ahora quiero escribir un clásico 603 00:26:44,920 --> 00:26:47,599 Soy la cuenta 37 604 00:26:47,599 --> 00:26:48,720 Y tengo 605 00:26:48,720 --> 00:26:50,740 Mi titular es 606 00:26:50,740 --> 00:26:51,880 No sé quién 607 00:26:51,880 --> 00:26:54,640 Y tengo dentro no sé cuánto 608 00:26:54,640 --> 00:26:55,039 Venga 609 00:26:55,039 --> 00:27:04,880 ¿Cómo no? 610 00:27:04,960 --> 00:27:05,519 Tengo mi cuenta 611 00:27:05,519 --> 00:27:06,960 Mi cuenta 612 00:27:06,960 --> 00:27:09,059 Punto 613 00:27:09,059 --> 00:27:15,339 ¿Cómo no? 614 00:27:18,859 --> 00:27:19,359 ¿Por qué no? 615 00:27:20,160 --> 00:27:22,039 Porque es privado, claro 616 00:27:22,039 --> 00:27:22,720 ¿Vale? 617 00:27:22,980 --> 00:27:24,460 No puede acceder al número de cuenta 618 00:27:24,460 --> 00:27:26,359 Porque ahora está bloqueada aquí 619 00:27:26,359 --> 00:27:30,220 Entonces, aquí tengo dos opciones 620 00:27:30,220 --> 00:27:32,400 O esta cosa de aquí 621 00:27:32,400 --> 00:27:34,720 Se la hago escribir 622 00:27:34,720 --> 00:27:36,259 A la cuenta 623 00:27:36,259 --> 00:27:38,140 Es decir, yo tendré 624 00:27:38,140 --> 00:27:40,099 Por ejemplo, ¿eh? 625 00:27:41,539 --> 00:27:42,220 Si hizo 626 00:27:42,220 --> 00:27:48,099 Si hizo otra vez 627 00:27:48,099 --> 00:27:51,299 Mi cuenta 628 00:27:51,299 --> 00:27:53,299 Punto toString 629 00:27:53,299 --> 00:28:15,519 vale que es esta cosa aquí pues lo voy a crear aquí y me creo en estos 30 y 630 00:28:15,519 --> 00:28:25,420 pongo sin resultado es igual a nada resultado es igual al resultado más 631 00:28:25,420 --> 00:28:57,420 no cuenta o algo así no más más la cuenta la cuenta más cuenta tiene más saldo a separar 632 00:28:57,420 --> 00:29:01,359 Return res 633 00:29:01,359 --> 00:29:11,359 Se enfada 634 00:29:11,359 --> 00:29:14,849 What is this? 635 00:29:23,500 --> 00:29:25,140 No, no, que no puede porque 636 00:29:25,140 --> 00:29:27,180 No puedo reducir 637 00:29:27,180 --> 00:29:29,000 La visibilidad del 638 00:29:29,000 --> 00:29:31,640 Método heredados 639 00:29:31,640 --> 00:29:33,700 Desde object 640 00:29:33,700 --> 00:29:36,019 What? 641 00:29:39,859 --> 00:29:40,299 Es que 642 00:29:40,299 --> 00:29:43,279 Es que hagamos un paso atrás 643 00:29:43,279 --> 00:29:45,019 Vale, luego volvemos aquí, vale 644 00:29:45,019 --> 00:29:46,799 Imprime 645 00:29:46,799 --> 00:29:48,859 Ahí, ya está 646 00:29:48,859 --> 00:29:49,480 Ningún problema 647 00:29:49,480 --> 00:29:55,329 Ya está, solucionado 648 00:29:55,329 --> 00:29:57,450 ¿Vale? Esto funciona 649 00:29:57,450 --> 00:30:04,589 Pasa atrás, luego vuelve 650 00:30:04,589 --> 00:30:06,609 ¿Vale? Esto funciona 651 00:30:06,609 --> 00:30:07,390 Vamos a verlo 652 00:30:07,390 --> 00:30:10,230 Lazo 653 00:30:10,230 --> 00:30:12,930 Hay errores 654 00:30:12,930 --> 00:30:14,309 Por otro lado, sí, mira 655 00:30:14,309 --> 00:30:16,130 La cuenta cero tiene 656 00:30:16,130 --> 00:30:18,710 Tres millones solo 657 00:30:18,710 --> 00:30:22,369 Tengo que hacer uno, casi se me acaba 658 00:30:22,369 --> 00:30:24,289 ¿Vale? Ok, o sea que 659 00:30:24,289 --> 00:30:26,309 Esto funciona, ¿vale? Tiene su sentido 660 00:30:26,309 --> 00:30:28,529 Llama lo que tiene que llamar 661 00:30:28,529 --> 00:30:29,750 Y funciona 662 00:30:29,750 --> 00:30:32,970 Todavía nos falta trabajo 663 00:30:32,970 --> 00:30:37,660 La cuenta cero 664 00:30:37,660 --> 00:30:38,900 No debería tener 3 millones 665 00:30:38,900 --> 00:30:40,539 Claro, porque lo estoy cambiando en mi cuenta 666 00:30:40,539 --> 00:30:43,740 Ahora le pongo 2 aquí 667 00:30:43,740 --> 00:30:46,019 Y ya está, solucionado 668 00:30:46,019 --> 00:30:46,339 ¿Vale? 669 00:30:47,019 --> 00:30:47,420 Ok 670 00:30:47,420 --> 00:30:51,940 Pero es una buena observación 671 00:30:51,940 --> 00:30:52,400 O sea que 672 00:30:52,400 --> 00:30:54,740 El hecho de que haya puesto 673 00:30:54,740 --> 00:30:57,640 El número de cuenta allí dentro 674 00:30:57,640 --> 00:31:00,119 Y que luego pueda hacer lo que me da ganas con titulares saldo 675 00:31:00,119 --> 00:31:01,420 Sigue siendo una cosa fría 676 00:31:01,420 --> 00:31:03,460 ¿Vale? Ahora lo vamos a mejorar un poco 677 00:31:03,460 --> 00:31:05,500 ¿Vale? Pero la idea es que 678 00:31:05,500 --> 00:31:07,299 Esto funciona, oye, fijaos 679 00:31:07,299 --> 00:31:08,299 ¿Por qué esto funciona? 680 00:31:12,019 --> 00:31:13,220 Porque esto es protected 681 00:31:13,220 --> 00:31:15,559 ¿Vale? Y es, me parece a mí 682 00:31:15,559 --> 00:31:17,400 O es mismo 683 00:31:17,400 --> 00:31:19,819 Package y mismo 684 00:31:19,819 --> 00:31:22,160 O 685 00:31:22,160 --> 00:31:24,000 Heredado 686 00:31:24,000 --> 00:31:25,880 ¿Vale? Heredado no sabemos que es, por lo tanto lo dejamos 687 00:31:25,880 --> 00:31:27,319 Y si yo muevo 688 00:31:27,319 --> 00:31:29,880 Me encuentro 689 00:31:29,880 --> 00:31:41,240 en otro package se enfada vale se enfada porque cuenta no la ha importado de hecho automáticamente 690 00:31:43,900 --> 00:31:53,759 pero no lo encuentra algo raro vamos a hacer otra cosa vamos a dejar hacerlo con refactor 691 00:31:53,759 --> 00:31:57,500 a ver si me lo hace, refactor, move 692 00:31:57,500 --> 00:32:00,180 en geometría, ok 693 00:32:00,180 --> 00:32:10,920 eso es lo que quiero hacer, pero antes de llegar a que esto me haga 694 00:32:10,920 --> 00:32:15,119 problemas, pues lo que estoy intentando hacer es mover 695 00:32:15,119 --> 00:32:19,380 main cuenta en otro package, vale, y me dice 696 00:32:19,380 --> 00:32:23,079 importa cuenta, pero no me lo encuentra, vale, entonces a ver 697 00:32:23,079 --> 00:32:27,140 que tengo que hacer aquí, me creo otro package que sea 698 00:32:27,140 --> 00:32:45,930 banco. Y ahora muevo esta cuenta a ver si así me lo ve. Muevelo dentro banco. Veis 699 00:32:45,930 --> 00:32:55,930 que estoy importando banco.cuenta. Fenomenal. Entonces ahora estoy reutilizando un viejo 700 00:32:55,930 --> 00:32:58,049 proyecto banco que tenía dentro cuenta 701 00:32:58,049 --> 00:33:00,049 para mi proyecto 702 00:33:00,049 --> 00:33:02,109 nuevo yo, geometría, donde uso 703 00:33:02,109 --> 00:33:03,529 algo de esta cuenta 704 00:33:03,529 --> 00:33:05,230 y fijaos que va todo bien 705 00:33:05,230 --> 00:33:07,930 excepto estos y estos 706 00:33:07,930 --> 00:33:09,950 me da problemas, vamos a ver que problemas me da 707 00:33:09,950 --> 00:33:18,720 pero si hace 708 00:33:18,720 --> 00:33:20,119 un momento si quedan visibles 709 00:33:20,119 --> 00:33:22,240 ¿por qué? 710 00:33:24,619 --> 00:33:26,119 porque si voy a ver cuenta 711 00:33:26,119 --> 00:33:27,700 no le he puesto nada adelante 712 00:33:27,700 --> 00:33:30,039 perdón, saldo y titular no le he puesto 713 00:33:30,039 --> 00:33:31,920 nada adelante, esto quiere decir 714 00:33:31,920 --> 00:33:33,700 que estos señores son visibles 715 00:33:33,700 --> 00:33:35,059 Solo o si hereda 716 00:33:35,059 --> 00:33:37,440 O si están en el mismo package 717 00:33:37,440 --> 00:33:39,079 Y ahora no están en el mismo package 718 00:33:39,079 --> 00:33:42,079 He importado el otro package para poder utilizarlo 719 00:33:42,079 --> 00:33:42,299 ¿Vale? 720 00:33:42,819 --> 00:33:44,920 Entonces si quisiera verlos así 721 00:33:44,920 --> 00:33:56,140 Caos que ahora ya no tengo problemas aquí 722 00:33:56,140 --> 00:33:57,859 Se me queda 723 00:33:57,859 --> 00:33:59,700 Este problema de aquí porque es lo mismo 724 00:33:59,700 --> 00:34:01,500 Me dice, oye mira que 725 00:34:01,500 --> 00:34:03,819 Tú, este de aquí 726 00:34:03,819 --> 00:34:05,359 Es protected, ¿vale? 727 00:34:05,380 --> 00:34:06,480 No le he puesto nada adelante 728 00:34:06,480 --> 00:34:08,260 Y por lo tanto es 729 00:34:08,260 --> 00:34:11,800 Solo se puede ver si hereda o si está en un 730 00:34:11,800 --> 00:34:14,300 Y no está en el mismo package, por lo tanto no 731 00:34:14,300 --> 00:34:15,440 Hasta si pusiera 732 00:34:15,440 --> 00:34:16,539 Package 733 00:34:16,539 --> 00:34:19,139 Sigue sin verse, ¿vale? 734 00:34:19,239 --> 00:34:20,920 Aquí me da problema, no sé por qué 735 00:34:20,920 --> 00:34:23,059 Entonces, lo que tengo que hacer es 736 00:34:23,059 --> 00:34:25,929 Public 737 00:34:25,929 --> 00:34:29,880 Ahora, como este es público 738 00:34:29,880 --> 00:34:32,559 Pues desde aquí se debería poder ver 739 00:34:32,559 --> 00:34:35,119 Entonces, ahora me vuelve a funcionar 740 00:34:35,119 --> 00:34:36,579 No obstante, estén 741 00:34:36,579 --> 00:34:37,960 En packages distintos 742 00:34:37,960 --> 00:34:42,219 ¿Dudas? 743 00:34:52,530 --> 00:34:52,949 Me gusta 744 00:34:52,949 --> 00:34:55,489 Vale, entonces 745 00:34:55,489 --> 00:34:58,030 Vamos ahora a decir, vale, muy bien 746 00:34:58,030 --> 00:35:00,130 Hasta ahora hemos jugado, ¿cómo modifico 747 00:35:00,130 --> 00:35:01,449 Esto para hacerlo un poquito más serio? 748 00:35:15,639 --> 00:35:16,960 No quiero que esto sea 749 00:35:16,960 --> 00:35:18,780 Modificable desde fuera, ¿vale? 750 00:35:19,019 --> 00:35:20,860 Y cuando creo una nueva cuenta, ¿qué hago? 751 00:35:27,179 --> 00:35:28,659 El número se lo asigno yo 752 00:35:28,659 --> 00:35:30,340 Pero normalmente 753 00:35:30,340 --> 00:35:31,239 Cuando creo una cuenta 754 00:35:31,239 --> 00:35:32,960 ¿Qué tendré que saber? 755 00:35:44,880 --> 00:35:46,599 Ahora yo el titular no lo puedo 756 00:35:46,599 --> 00:35:48,619 Volver a modificar desde aquí, ¿vale? 757 00:35:49,400 --> 00:35:50,539 Tendré que ponerle 758 00:35:50,539 --> 00:35:52,719 El titular del momento 759 00:35:52,719 --> 00:35:53,579 En que creo 760 00:35:53,579 --> 00:35:55,619 La cuenta 761 00:35:55,619 --> 00:36:01,949 Que tiene más sentido 762 00:36:01,949 --> 00:36:02,969 ¿Vale? 763 00:36:04,429 --> 00:36:05,650 Al crear una cuenta 764 00:36:05,650 --> 00:36:06,869 Yo le paso el nombre del titular 765 00:36:06,869 --> 00:36:09,650 Él en automático me da el número 766 00:36:09,650 --> 00:36:11,349 De la cuenta 767 00:36:11,349 --> 00:36:13,030 Y asocia mi titular 768 00:36:13,030 --> 00:36:13,650 ¿Vale? 769 00:36:14,030 --> 00:36:16,929 Y por ejemplo, en este caso de aquí 770 00:36:16,929 --> 00:36:18,130 Podría decirle 771 00:36:18,130 --> 00:36:20,809 Y el saldo es cero 772 00:36:20,809 --> 00:36:23,429 Cuando creo una nueva cuenta 773 00:36:23,429 --> 00:36:24,250 El saldo es cero 774 00:36:24,250 --> 00:36:46,449 voy a ver qué es y si quiero crear una cuenta que tenga ya un saldo 775 00:36:46,449 --> 00:36:53,130 entonces ahora para hacer cuenta uno por ejemplo le puedo poner así viene un 776 00:36:53,130 --> 00:36:58,389 cliente me dice hoy soy yo tengo un millón de euros pues vale perfecto te 777 00:36:58,389 --> 00:37:01,250 creo tu cuenta 778 00:37:02,670 --> 00:37:08,789 ok vale perfecto está funcionado pero el segundo en vez de lo hace en dos partes 779 00:37:08,789 --> 00:37:11,130 crea una cuenta antes 780 00:37:11,130 --> 00:37:12,329 y luego se acuerda y dice 781 00:37:12,329 --> 00:37:14,550 ya que la he creado, quiero meter algo 782 00:37:14,550 --> 00:37:15,769 ¿vale? 783 00:37:16,329 --> 00:37:18,989 cuando la he creado, aquí, ya la he creado 784 00:37:18,989 --> 00:37:20,670 con cero, ¿y ahora qué hago? 785 00:37:22,050 --> 00:37:22,849 ¿cómo le pongo 786 00:37:22,849 --> 00:37:32,530 dinero? por ejemplo 787 00:37:32,530 --> 00:37:34,250 entonces vamos a crear 788 00:37:34,250 --> 00:37:35,269 un método 789 00:37:35,269 --> 00:37:42,429 que me devuelva 790 00:37:42,429 --> 00:37:44,130 bueno, un método que se llame 791 00:37:44,130 --> 00:37:46,630 ingresar 792 00:37:46,630 --> 00:37:49,409 int 793 00:37:49,409 --> 00:37:50,409 cantidad 794 00:37:50,409 --> 00:37:52,170 ¿vale? 795 00:37:53,269 --> 00:37:55,730 prototipo de este método, ¿qué tiene que devolver? 796 00:38:00,800 --> 00:38:01,219 podría 797 00:38:01,219 --> 00:38:03,380 devolver tres cosas, void 798 00:38:03,380 --> 00:38:05,260 lo hace y no te dice nada 799 00:38:05,260 --> 00:38:07,320 puede devolver boolean 800 00:38:07,320 --> 00:38:09,360 si lo has podido hacer 801 00:38:09,360 --> 00:38:11,639 me devuelves true, si ha habido algún 802 00:38:11,639 --> 00:38:12,940 problema me devuelves false 803 00:38:12,940 --> 00:38:15,139 tercero 804 00:38:15,139 --> 00:38:16,719 podría ser un int 805 00:38:16,719 --> 00:38:19,619 tú me dices cuánto entró y yo te doy 806 00:38:19,619 --> 00:38:21,659 el saldo actual, para que tú 807 00:38:21,659 --> 00:38:41,519 verifiques admitió 100 euros y ahora tienes 2.400 como lo queremos hacer teniendo en cuenta que está 808 00:38:41,519 --> 00:38:51,059 esta parte de aquí es el objeto en el objeto poner diálogos con el usuario siempre presente 809 00:38:51,059 --> 00:38:57,619 peligroso porque cuando yo le hago reutilizo esto en otro contexto donde no hay un usuario 810 00:38:57,619 --> 00:39:00,320 Este se parará ahí a esperar que el usuario me ponga algo 811 00:39:00,320 --> 00:39:01,099 ¿Vale? 812 00:39:01,239 --> 00:39:03,920 Es mejor que si yo quiero hacer algo de por el estilo 813 00:39:03,920 --> 00:39:05,039 Lo haga desde mi cuenta 814 00:39:05,039 --> 00:39:08,179 Tenga los métodos para trabajar con el 815 00:39:08,179 --> 00:39:10,000 Con el objeto 816 00:39:10,000 --> 00:39:12,260 Y es el trabajo puro 817 00:39:12,260 --> 00:39:13,960 Y es en mi cuenta 818 00:39:13,960 --> 00:39:15,780 Donde hago la interfaz con el usuario 819 00:39:15,780 --> 00:39:17,480 Que le pido cosas si hace falta 820 00:39:17,480 --> 00:39:19,539 Yo puedo intentar meter dinero 821 00:39:19,539 --> 00:39:20,960 Y si me da un error 822 00:39:20,960 --> 00:39:23,619 Pues entonces lo pido al usuario y vuelvo a intentar hacer 823 00:39:23,619 --> 00:39:26,039 ¿Vale? Pero no a nivel de cuenta 824 00:39:26,039 --> 00:39:27,159 La cuenta debería ser 825 00:39:27,159 --> 00:39:28,780 Más sencilla posible 826 00:39:28,780 --> 00:39:30,920 Y trabajar sobre lo que es la cuenta 827 00:39:30,920 --> 00:39:31,699 ¿Sí? 828 00:39:32,480 --> 00:39:34,460 Entonces, ingresar 829 00:39:34,460 --> 00:39:36,039 Pues yo lo haría con el índice 830 00:39:36,039 --> 00:39:38,800 ¿No? Devolvamos el saldo 831 00:39:38,800 --> 00:39:39,659 Actual 832 00:39:39,659 --> 00:39:42,699 ¿Sí? Porque es 833 00:39:42,699 --> 00:39:44,699 Parecido al boolean 834 00:39:44,699 --> 00:39:46,420 Pero es más preciso 835 00:39:46,420 --> 00:39:48,780 Yo puedo devolver un entero 836 00:39:48,780 --> 00:39:50,840 Negativo si no he podido 837 00:39:50,840 --> 00:39:52,340 Hacerlo y 838 00:39:52,340 --> 00:39:55,179 Un entorno, si te devuelvo en vez tu sueldo 839 00:39:55,179 --> 00:39:56,260 Es que lo he podido hacer 840 00:39:56,260 --> 00:40:02,699 no por ejemplo así tengo más información posible tengo si lo has podido hacer o no y tengo cuánto 841 00:40:02,699 --> 00:40:10,800 tienes ahora en el banco entonces ingresar y bla bla bla entonces empiezo con un bueno 842 00:40:10,800 --> 00:40:26,980 la verdad es que es muy fácil es decir que hago que dis operaciones igual a menos uno 843 00:40:26,980 --> 00:40:31,889 luego digo que 844 00:40:31,889 --> 00:40:35,849 dis.cuenta 845 00:40:35,849 --> 00:40:37,369 no cuenta 846 00:40:37,369 --> 00:40:39,289 saldo 847 00:40:39,289 --> 00:40:44,150 es más o igual 848 00:40:44,150 --> 00:40:46,050 a cantidad 849 00:40:46,050 --> 00:40:48,789 esta es 850 00:40:48,789 --> 00:40:50,530 dis.saldo es igual a 851 00:40:50,530 --> 00:40:51,849 dis.saldo más cantidad 852 00:40:51,849 --> 00:40:52,909 vale 853 00:40:52,909 --> 00:40:56,630 op es igual 854 00:40:56,630 --> 00:40:58,690 adbis.saldo 855 00:40:58,690 --> 00:41:00,949 return op 856 00:41:00,949 --> 00:41:05,010 en realidad este código es horrible 857 00:41:05,010 --> 00:41:06,349 vale 858 00:41:06,349 --> 00:41:09,050 y lo que deberíamos hacer es esto 859 00:41:09,050 --> 00:41:17,179 también porque 860 00:41:17,179 --> 00:41:18,539 a este 861 00:41:18,539 --> 00:41:35,670 esto es lo que estoy haciendo, también porque 862 00:41:35,670 --> 00:41:37,929 el concepto de añadir dinero no tiene problemas 863 00:41:37,929 --> 00:41:39,690 aquí no tengo if, aquí no tengo 864 00:41:39,690 --> 00:41:42,090 entonces esta operación se va a hacer 865 00:41:42,090 --> 00:41:43,389 otra cosa es que 866 00:41:43,389 --> 00:41:45,690 dependiera del usuario 867 00:41:45,690 --> 00:41:47,789 Y si eres tú 868 00:41:47,789 --> 00:41:48,949 Entonces te sumo 869 00:41:48,949 --> 00:41:50,590 Si no eres tú no te sumo nada 870 00:41:50,590 --> 00:41:51,969 Entonces podría fallar la operación 871 00:41:51,969 --> 00:41:53,349 Pero aquí es, añade 100 euros 872 00:41:53,349 --> 00:41:57,789 Si no hay mucha opción de fallar 873 00:41:57,789 --> 00:41:59,389 ¿Hasta qué punto sería eficiente 874 00:41:59,389 --> 00:42:00,610 O bien hecho 875 00:42:00,610 --> 00:42:01,989 Poner directamente 876 00:42:01,989 --> 00:42:03,869 10 puntos saldo más cantidad 877 00:42:03,869 --> 00:42:09,230 Porque es lo mismo 878 00:42:09,230 --> 00:42:13,230 Si la operación te devuelve el valor 879 00:42:13,230 --> 00:42:13,710 Sí 880 00:42:13,710 --> 00:42:26,360 Pero no la guarda 881 00:42:26,360 --> 00:42:26,559 No 882 00:42:26,559 --> 00:42:29,960 Te devuelve 200 883 00:42:29,960 --> 00:42:30,940 Pero te deja 100 884 00:42:30,940 --> 00:42:34,380 Y eso no te va a gustar 885 00:42:34,380 --> 00:42:34,659 ¿Vale? 886 00:42:36,460 --> 00:42:37,019 ¿Sí? 887 00:42:37,679 --> 00:42:39,460 Lo que dices tú 888 00:42:39,460 --> 00:42:40,880 Es esto 889 00:42:40,880 --> 00:42:43,219 Pero no sé si te lo hace 890 00:42:43,219 --> 00:42:48,110 Esto podría funcionar 891 00:42:48,110 --> 00:42:49,570 Pero es que no sé 892 00:42:49,570 --> 00:42:51,769 Esta operación si devuelve 893 00:42:51,769 --> 00:42:52,449 Resultado de la operación 894 00:42:52,449 --> 00:42:54,110 Lo más probable es que esto devuelva 895 00:42:54,110 --> 00:42:55,409 Un true o un false 896 00:42:55,409 --> 00:42:56,610 O un 0 o un 1 897 00:42:56,610 --> 00:42:57,630 O cosa por el estilo 898 00:42:57,630 --> 00:42:59,969 No lo que queremos nosotros 899 00:42:59,969 --> 00:43:01,409 Por lo tanto, así 900 00:43:01,409 --> 00:43:03,630 Cuidado con, no siempre 901 00:43:03,630 --> 00:43:05,829 Escribir menos es mejor 902 00:43:05,829 --> 00:43:07,989 Porque a veces eso llega a un momento 903 00:43:07,989 --> 00:43:09,090 En que lía 904 00:43:09,090 --> 00:43:11,050 Y luego cuando tenéis que encontrar 905 00:43:11,050 --> 00:43:12,889 Un error 906 00:43:12,889 --> 00:43:15,409 Y lo habéis escrito todo súper comprimido 907 00:43:15,409 --> 00:43:17,110 Puede ser realmente un problema 908 00:43:17,110 --> 00:43:18,769 Con calma, pero 909 00:43:18,769 --> 00:43:21,469 Yo creo que así es aceptable 910 00:43:21,469 --> 00:43:23,489 Sumo la cantidad que me has pasado 911 00:43:23,489 --> 00:43:25,469 Al saldo y luego te lo devuelvo 912 00:43:25,469 --> 00:43:26,570 ¿Dudas? 913 00:43:27,630 --> 00:43:40,059 Entonces ahora, aquí, lo que puedo hacer es mi cuenta.ingresar mis 3 millones de euros. 914 00:43:41,599 --> 00:43:46,159 Se enfada, porque no lo he puesto público. 915 00:43:55,099 --> 00:43:57,480 Y ahora debería funcionar, ¿vale? 916 00:44:09,989 --> 00:44:13,590 Volvamos un momento al toString. 917 00:44:13,590 --> 00:44:20,889 En realidad, en Java, cualquier clase que yo creo 918 00:44:20,889 --> 00:44:24,769 Usa la cosa que no sabemos que es la herencia 919 00:44:24,769 --> 00:44:29,829 La herencia es como extender otra clase 920 00:44:29,829 --> 00:44:33,929 Es como yo ya tengo una clase y voy a añadir cosas a esa clase 921 00:44:33,929 --> 00:44:36,469 Por defecto, si yo no digo nada 922 00:44:36,469 --> 00:44:42,309 Y siempre una clase extiende una clase especial que se llama object 923 00:44:42,309 --> 00:44:43,969 objeto 924 00:44:43,969 --> 00:44:45,570 mi clase es un objeto 925 00:44:45,570 --> 00:44:48,230 cocodrilo es un objeto, rectángulo es un objeto 926 00:44:48,230 --> 00:44:50,809 ¿vale? entonces hay esta extensión 927 00:44:50,809 --> 00:44:52,130 la clase object 928 00:44:52,130 --> 00:44:54,250 tiene por defecto dentro 929 00:44:54,250 --> 00:44:56,550 un metodito que es el método toString 930 00:44:56,550 --> 00:44:58,530 entonces cuando yo utilizaba 931 00:44:58,530 --> 00:44:59,590 antes toString 932 00:44:59,590 --> 00:45:02,309 en realidad el toString estoy 933 00:45:02,309 --> 00:45:04,789 sobrescribiendo 934 00:45:04,789 --> 00:45:06,210 el toString 935 00:45:06,210 --> 00:45:07,610 de la clase object 936 00:45:07,610 --> 00:45:10,829 ¿vale? que es el contrato de sobrescriptura 937 00:45:10,829 --> 00:45:13,289 estoy pillando la clase object que tiene su método 938 00:45:13,289 --> 00:45:15,130 y estoy diciendo, no, mira, para la clase 939 00:45:15,130 --> 00:45:16,809 mía, no uses 940 00:45:16,809 --> 00:45:18,650 el método de tu object, usa 941 00:45:18,650 --> 00:45:20,949 el método mío, es un poco 942 00:45:20,949 --> 00:45:22,949 retorcido porque no sabemos 943 00:45:22,949 --> 00:45:24,329 todavía la herencia, ¿vale? 944 00:45:24,670 --> 00:45:27,150 entonces, por ahora lo dejamos así 945 00:45:27,150 --> 00:45:29,070 en el aire y luego volveremos 946 00:45:29,070 --> 00:45:31,050 cuando estudiaremos la herencia y veremos la clase 947 00:45:31,050 --> 00:45:32,969 object, pues volvemos al toString 948 00:45:32,969 --> 00:45:34,949 porque es útil, ¿vale? toString con otras 949 00:45:34,949 --> 00:45:36,769 cosillas son cosas que hay que 950 00:45:36,769 --> 00:45:39,010 implementar, por ahora dejamos imprime 951 00:45:39,010 --> 00:45:40,190 y estamos todos felices 952 00:45:40,190 --> 00:46:00,320 pensamos así vale entonces nos faltaría otra cosa no tengo ingresar de vez en cuando querré sacar 953 00:46:00,320 --> 00:46:22,500 hago dinero, no? lo copio, ctrl v, ingresar, sacar, relevar, retirar, retiro una cantidad 954 00:46:22,500 --> 00:46:31,239 y hago así. Ya está, solucionado, ¿verdad? Claro, yo voy allí, tengo 3 euros en el banco, 955 00:46:31,320 --> 00:46:36,579 le digo dame 100 y me lo dan enseguida. ¿Qué más da que haya un menos delante? Toma todo 956 00:46:36,579 --> 00:46:53,500 el dinero que quieres. Son todos ricos. ¿Qué tendré que hacer? IF. IF punto saldo. Es 957 00:46:53,500 --> 00:46:55,699 mayor de cantidad 958 00:46:55,699 --> 00:46:57,440 mayor 959 00:46:57,440 --> 00:46:59,519 igual 960 00:46:59,519 --> 00:47:01,000 venga, si te quieres quedar a cero 961 00:47:01,000 --> 00:47:01,739 puedes 962 00:47:01,739 --> 00:47:04,300 entonces lo haces 963 00:47:04,300 --> 00:47:12,139 y ahora sí que podría tener 964 00:47:12,139 --> 00:47:14,699 sentido tener una variable 965 00:47:14,699 --> 00:47:16,900 int op que valga menos uno 966 00:47:16,900 --> 00:47:19,000 para hacerlo de alguna forma 967 00:47:19,000 --> 00:47:20,559 y que 968 00:47:20,559 --> 00:47:22,280 si ejecuto esto 969 00:47:22,280 --> 00:47:24,400 entonces op vale 970 00:47:24,400 --> 00:47:25,659 dis.saldo 971 00:47:25,659 --> 00:47:27,599 después 972 00:47:27,599 --> 00:47:32,980 Y aquí devuelvo 973 00:47:32,980 --> 00:47:37,400 ¿Para qué me sirve esto? 974 00:47:38,019 --> 00:47:41,449 Y ejecuto esta operación 975 00:47:41,449 --> 00:47:43,670 Si el resultado es menos uno 976 00:47:43,670 --> 00:47:45,050 Es que no has podido retirar 977 00:47:45,050 --> 00:47:47,889 Si es cualquier otro número 978 00:47:47,889 --> 00:47:49,429 Es que has podido retirar 979 00:47:49,429 --> 00:47:54,099 Imaginamos que yo tengo 100 980 00:47:54,099 --> 00:47:55,079 Y pido 200 981 00:47:55,079 --> 00:47:56,340 Pues esto 982 00:47:56,340 --> 00:47:57,820 Será falso 983 00:47:57,820 --> 00:47:59,960 Por lo tanto me salto todo esto 984 00:47:59,960 --> 00:48:01,940 Y entonces devuelvo menos uno 985 00:48:01,940 --> 00:48:04,079 Tenía 100, has pedido 200 986 00:48:04,079 --> 00:48:05,340 No puedes hacer la operación 987 00:48:05,340 --> 00:48:07,460 Si en vez 988 00:48:07,460 --> 00:48:10,320 Tú tienes 200 y pides 100 989 00:48:10,320 --> 00:48:11,420 Esto es verdadero 990 00:48:11,420 --> 00:48:14,260 Entras aquí, haces que aquí dentro pones 991 00:48:14,260 --> 00:48:16,420 Lo que hay aquí dentro, 200 menos 100 992 00:48:16,420 --> 00:48:17,880 100, y luego devuelves 993 00:48:17,880 --> 00:48:20,079 Escribes en op 100 994 00:48:20,079 --> 00:48:21,619 Entonces devuelves 100 995 00:48:21,619 --> 00:48:22,619 ¿Sí? 996 00:48:23,559 --> 00:48:25,000 Vamos a hacer pruebas 997 00:48:25,000 --> 00:48:29,280 Entonces, ahora que he escrito 998 00:48:29,280 --> 00:48:30,679 Pues voy a sacar dinero 999 00:48:30,679 --> 00:48:31,679 Vamos a reducir 1000 00:48:31,679 --> 00:48:35,280 Entonces voy a 1001 00:48:35,340 --> 00:48:47,699 hacer una operación en mi cuenta vale si mi cuenta punto hemos quemado retirar retirar 1002 00:48:49,840 --> 00:49:05,639 lo siento es mayor o igual que cero has retirado correctamente 1003 00:49:05,639 --> 00:49:07,880 Si 1004 00:49:07,880 --> 00:49:11,769 Y 1005 00:49:11,769 --> 00:49:14,130 El se 1006 00:49:14,130 --> 00:49:22,369 No has podido 1007 00:49:22,369 --> 00:49:25,690 Retirar 1008 00:49:25,690 --> 00:49:31,590 Saldo insuficiente 1009 00:49:31,590 --> 00:49:35,559 Y hago lo mismo 1010 00:49:35,559 --> 00:49:42,739 Con cuenta 2 1011 00:49:42,739 --> 00:49:45,159 Retirando 5000 1012 00:49:45,159 --> 00:49:47,659 Esta es la cantidad 1013 00:49:47,659 --> 00:49:49,800 Quiero un café 1014 00:49:49,800 --> 00:49:52,800 Vale, entonces, ejecuto 1015 00:49:52,800 --> 00:49:57,929 Cuenta cero tiene un millón 1016 00:49:57,929 --> 00:49:59,489 Y has retirado correctamente 1017 00:49:59,489 --> 00:50:01,650 Aquí lo intento y me dice 1018 00:50:01,650 --> 00:50:03,670 No has podido sacar 1019 00:50:03,670 --> 00:50:04,730 Cosa por este 1020 00:50:04,730 --> 00:50:06,170 Vale 1021 00:50:06,170 --> 00:50:09,250 Ahora podría añadir aquí 1022 00:50:09,250 --> 00:50:12,050 Esta de aquí, bueno, la he escrito aquí 1023 00:50:12,050 --> 00:50:13,670 Podría reutilizar imprime 1024 00:50:13,670 --> 00:50:15,710 Para decir aquí, la cuenta uno 1025 00:50:15,710 --> 00:50:17,449 Tiene 300, saldo insuficiente 1026 00:50:17,449 --> 00:50:27,179 Bueno, en realidad 1027 00:50:27,179 --> 00:50:30,579 Cuando tenemos una situación como esta de aquí 1028 00:50:30,579 --> 00:50:33,179 ¿Vale? O sea que todo está privado 1029 00:50:33,179 --> 00:50:37,840 Puedo acceder a ellos con el constructor 1030 00:50:37,840 --> 00:50:40,659 Y luego se suele poner 1031 00:50:40,659 --> 00:50:43,139 De las acciones que quiero hacer 1032 00:50:43,139 --> 00:50:45,719 Lo que se llaman los getter y setter 1033 00:50:45,719 --> 00:50:47,000 ¿Vale? 1034 00:50:47,000 --> 00:50:50,719 Los getters son los que me permiten leer una variable 1035 00:50:50,719 --> 00:50:54,800 Y los setters los que me permiten modificar esa variable 1036 00:50:54,800 --> 00:50:56,000 ¿Vale? 1037 00:50:56,400 --> 00:50:57,880 Pongamos por ejemplo 1038 00:50:57,880 --> 00:51:01,539 Que yo quiera poder leer mi saldo 1039 00:51:01,539 --> 00:51:10,599 Entonces hago un public int get saldo 1040 00:51:10,599 --> 00:51:13,480 Get es de pillar ¿Vale? 1041 00:51:13,480 --> 00:51:14,980 Por eso son los getters 1042 00:51:14,980 --> 00:51:16,699 Porque son todos los get 1043 00:51:16,699 --> 00:51:17,440 algo 1044 00:51:17,440 --> 00:51:20,139 y lo que hago es 1045 00:51:20,139 --> 00:51:22,960 return saldo 1046 00:51:22,960 --> 00:51:25,860 esta cosa de aquí 1047 00:51:25,860 --> 00:51:28,860 me permite ahora leer saldo 1048 00:51:28,860 --> 00:51:29,460 desde fuera 1049 00:51:29,460 --> 00:51:31,679 y aquí 1050 00:51:31,679 --> 00:51:35,199 puedo poner, no has podido retirar 1051 00:51:35,199 --> 00:51:37,159 saldo insuficiente 1052 00:51:37,159 --> 00:51:38,099 punto 1053 00:51:38,099 --> 00:51:40,300 tu saldo 1054 00:51:40,300 --> 00:51:45,460 saldo 1055 00:51:45,460 --> 00:51:46,840 actual 1056 00:51:46,840 --> 00:51:48,840 actual 1057 00:51:48,840 --> 00:51:49,659 Es 1058 00:51:49,659 --> 00:51:52,119 Más 1059 00:51:52,119 --> 00:51:55,360 Mi cuenta 1060 00:51:55,360 --> 00:51:56,199 Dos 1061 00:51:56,199 --> 00:51:58,920 Punto get saldo 1062 00:51:58,920 --> 00:52:02,329 Fijaos que 1063 00:52:02,329 --> 00:52:04,230 Esto me permite hacerlo 1064 00:52:04,230 --> 00:52:05,969 Sin embargo si yo 1065 00:52:05,969 --> 00:52:08,429 Intentar acceder a saldo directamente 1066 00:52:08,429 --> 00:52:10,170 Me dice no, no es visible 1067 00:52:10,170 --> 00:52:30,969 ¿Veis aquí? 1068 00:52:33,110 --> 00:52:35,110 Esto es que he leído el saldo 1069 00:52:35,110 --> 00:52:37,230 La cosa interesante de los getter 1070 00:52:37,230 --> 00:52:38,230 De los setters 1071 00:52:38,230 --> 00:52:41,130 Es que yo aquí puedo hacer una comprobación 1072 00:52:41,130 --> 00:52:44,769 Yo podría hacer aquí un 1073 00:52:44,769 --> 00:52:46,389 Si tú eres 1074 00:52:46,389 --> 00:52:48,570 El del banco 1075 00:52:48,570 --> 00:52:50,929 Y estás autorizado porque tienes 1076 00:52:50,929 --> 00:52:53,130 Algo que me has pasado aquí como parámetro 1077 00:52:53,130 --> 00:52:54,730 Por ejemplo, cosa por el estilo 1078 00:52:54,730 --> 00:52:56,730 Pues entonces te doy el sueldo, si no, no 1079 00:52:56,730 --> 00:53:00,809 ¿Vale? Es decir, que no es como 1080 00:53:00,809 --> 00:53:02,329 Acceder directamente a la variable 1081 00:53:02,329 --> 00:53:04,110 Que yo accedo allí, leo y me lo das 1082 00:53:04,110 --> 00:53:04,989 No, este es un método 1083 00:53:04,989 --> 00:53:07,150 Como base te dice 1084 00:53:07,150 --> 00:53:09,429 Te doy la cosa, pero aquí yo podría 1085 00:53:09,429 --> 00:53:11,409 Decir que te lo devuelvo, si, solo si 1086 00:53:11,409 --> 00:53:13,650 Tú cumples una serie de 1087 00:53:13,650 --> 00:53:14,769 Cosas, por ejemplo 1088 00:53:14,769 --> 00:53:16,929 Podrías haber tenido antes que 1089 00:53:16,929 --> 00:53:19,429 Hacer una sesión de un login 1090 00:53:19,429 --> 00:53:21,449 En el cosa, y aquí me pregunto 1091 00:53:21,449 --> 00:53:23,190 Si el login es válido, entonces 1092 00:53:23,190 --> 00:53:25,429 Si eres el titular de esta cuenta 1093 00:53:25,429 --> 00:53:27,070 Pues entonces te doy el saldo, si no, no 1094 00:53:27,070 --> 00:53:29,650 ¿Vale? O sea que podría complicarlo 1095 00:53:29,650 --> 00:53:31,510 Un poco, y también está 1096 00:53:31,510 --> 00:53:35,500 El public 1097 00:53:35,500 --> 00:53:37,420 void 1098 00:53:37,420 --> 00:53:39,900 set saldo 1099 00:53:39,900 --> 00:53:41,900 int x 1100 00:53:41,900 --> 00:53:45,010 sería 1101 00:53:45,010 --> 00:53:47,849 this.saldo es igual a x 1102 00:53:47,849 --> 00:53:50,150 esto me permitiría 1103 00:53:50,150 --> 00:53:52,349 setar el saldo 1104 00:53:52,349 --> 00:53:53,789 a un cierto valor 1105 00:53:53,789 --> 00:53:58,050 otra cosa es que lo quiera hacer 1106 00:53:58,050 --> 00:53:59,409 y también aquí 1107 00:53:59,409 --> 00:54:02,010 es un método, no es como escribir 1108 00:54:02,010 --> 00:54:03,630 directamente dentro saldo 1109 00:54:03,630 --> 00:54:05,570 es más bien un 1110 00:54:05,570 --> 00:54:06,550 oye mira 1111 00:54:06,550 --> 00:54:08,690 Ejecuta este método 1112 00:54:08,690 --> 00:54:11,309 Haz todas las comprobaciones que quieras 1113 00:54:11,309 --> 00:54:13,050 Mira si lo puedes hacer o no 1114 00:54:13,050 --> 00:54:14,369 Mira si tienes privilegios 1115 00:54:14,369 --> 00:54:16,269 Mira un fichero, mira un lo que sea 1116 00:54:16,269 --> 00:54:17,969 Y si todo está bien, ponlo 1117 00:54:17,969 --> 00:54:18,369 Si no, no 1118 00:54:18,369 --> 00:54:21,329 Lo puede hacer, ahora nosotros no lo hacemos 1119 00:54:21,329 --> 00:54:22,570 Pero, vale 1120 00:54:22,570 --> 00:54:24,690 Entonces, la idea es que 1121 00:54:24,690 --> 00:54:28,150 Por como lo utilizamos nosotros por un buen rato 1122 00:54:28,150 --> 00:54:29,530 La idea es que 1123 00:54:29,530 --> 00:54:31,650 Las variables críticas 1124 00:54:31,650 --> 00:54:33,969 Variables que no quiero modificar 1125 00:54:33,969 --> 00:54:34,769 Desde fuera 1126 00:54:34,769 --> 00:54:36,690 Las ponga como privada 1127 00:54:36,690 --> 00:54:38,610 Y la gestione 1128 00:54:38,610 --> 00:54:40,590 Así 1129 00:54:40,590 --> 00:54:42,730 O sea, en 1130 00:54:42,730 --> 00:54:45,230 En los constructores 1131 00:54:45,230 --> 00:54:46,710 Que me lo gestione él 1132 00:54:46,710 --> 00:54:48,690 Y que me haga las comprobaciones que tiene que hacer 1133 00:54:48,690 --> 00:54:50,769 Y que si la quiero leer 1134 00:54:50,769 --> 00:54:52,809 Normalmente no hay grandes problemas 1135 00:54:52,809 --> 00:54:54,309 ¿Vale? La puedo leer 1136 00:54:54,309 --> 00:54:55,889 Con get 1137 00:54:55,889 --> 00:54:57,650 Con el get, ¿vale? 1138 00:54:58,030 --> 00:55:00,369 Y que se utilice 1139 00:55:00,369 --> 00:55:02,710 Con métodos que yo proporciono 1140 00:55:03,309 --> 00:55:04,630 ¿Vale? Entonces yo tengo el 1141 00:55:04,630 --> 00:55:06,349 control, no hay nadie que pueda decir 1142 00:55:06,349 --> 00:55:08,550 ahora tengo un millón de euros, no, lo tienes que 1143 00:55:08,550 --> 00:55:10,449 ingresar o lo tienes que retirar 1144 00:55:10,449 --> 00:55:11,829 y estos métodos se llaman 1145 00:55:11,829 --> 00:55:13,309 desde fuera 1146 00:55:13,309 --> 00:55:15,329 lo llaman banco 1147 00:55:15,329 --> 00:55:17,909 claramente aquí no se hace nada 1148 00:55:17,909 --> 00:55:20,570 si tú me traes un millón de euros y yo te hago una ingresión 1149 00:55:20,570 --> 00:55:21,750 de un millón, pues te lo pongo 1150 00:55:21,750 --> 00:55:24,389 lo que no puedes hacer es directamente decirte 1151 00:55:24,389 --> 00:55:25,869 tengo un millón de euros 1152 00:55:25,869 --> 00:55:27,889 sin ingresar 1153 00:55:27,889 --> 00:55:30,289 no sé si me explico la idea que está 1154 00:55:30,289 --> 00:55:31,369 por detrás de esto 1155 00:55:31,369 --> 00:55:34,349 ahora, esto están 1156 00:55:34,349 --> 00:55:36,409 radicado, que si no me equivoco 1157 00:55:36,409 --> 00:55:38,289 por aquí hay una opción de 1158 00:55:38,289 --> 00:55:39,829 create get and set 1159 00:55:39,829 --> 00:55:41,230 ¿dónde estará? 1160 00:55:43,329 --> 00:55:43,889 Forge 1161 00:55:43,889 --> 00:55:45,030 aquí 1162 00:55:45,030 --> 00:55:48,730 si os fijáis por aquí debería haber 1163 00:55:48,730 --> 00:55:49,190 aquí 1164 00:55:49,190 --> 00:55:56,110 hay una opción automática que si tú le das te crea 1165 00:55:56,110 --> 00:55:57,889 todos los getter y todos los setter 1166 00:55:57,889 --> 00:56:00,349 básicos, de eso de set x 1167 00:56:00,349 --> 00:56:00,889 se te pone 1168 00:56:00,889 --> 00:56:05,599 a ver 1169 00:56:05,599 --> 00:56:07,880 ¿de cuál queréis el get y el set? 1170 00:56:07,980 --> 00:56:09,159 por ejemplo de un cuenta 1171 00:56:09,159 --> 00:56:11,840 Los dos, get y set 1172 00:56:11,840 --> 00:56:12,980 Pues le das generate 1173 00:56:12,980 --> 00:56:15,360 Y el me crea el get en un cuenta 1174 00:56:15,360 --> 00:56:16,320 Y el set en un cuenta 1175 00:56:16,320 --> 00:56:21,440 Claramente me lo da en versión 1176 00:56:21,440 --> 00:56:23,400 Básica, super básica 1177 00:56:23,400 --> 00:56:25,199 Luego si yo quiero hacer comprobaciones 1178 00:56:25,199 --> 00:56:26,079 Y cosas por el estilo 1179 00:56:26,079 --> 00:56:28,760 Soy yo que me tengo que poner a trabajar 1180 00:56:28,760 --> 00:56:32,420 Fijaos también 1181 00:56:32,420 --> 00:56:34,820 Que cuando estáis aquí en search 1182 00:56:34,820 --> 00:56:37,880 Aparece también nuestro amigo 1183 00:56:37,880 --> 00:56:42,280 Y aparece también nuestro amigo 1184 00:56:42,280 --> 00:56:45,639 ¿Y por qué aparecen? 1185 00:56:46,000 --> 00:56:46,699 Pues ya lo veréis 1186 00:56:46,699 --> 00:56:48,019 ¿Sí? 1187 00:56:48,820 --> 00:56:49,239 Pero 1188 00:56:49,239 --> 00:56:50,860 Lo que quiero decir con esto 1189 00:56:50,860 --> 00:56:52,159 Es que son tan 1190 00:56:52,159 --> 00:56:54,119 Tan común 1191 00:56:54,119 --> 00:56:55,199 Hacer estas cosas 1192 00:56:55,199 --> 00:56:56,280 Que hasta el 1193 00:56:56,280 --> 00:56:57,420 El eclipse 1194 00:56:57,420 --> 00:56:58,659 O el líder en general 1195 00:56:58,659 --> 00:56:59,219 Que utilizáis 1196 00:56:59,219 --> 00:57:00,400 Pues os da la herramienta 1197 00:57:00,400 --> 00:57:00,800 Para hacerlo 1198 00:57:00,800 --> 00:57:01,739 Porque la probabilidad 1199 00:57:01,739 --> 00:57:02,920 Que lo vayáis a hacer 1200 00:57:02,920 --> 00:57:03,659 Es bastante alta 1201 00:57:03,659 --> 00:57:04,260 ¿Vale? 1202 00:57:04,500 --> 00:57:06,000 Y son también cosas 1203 00:57:06,000 --> 00:57:07,340 Que en su versión 1204 00:57:07,340 --> 00:57:08,320 Más básicas 1205 00:57:08,320 --> 00:57:09,960 Son triviales 1206 00:57:09,960 --> 00:57:10,539 ¿Vale? 1207 00:57:10,579 --> 00:57:12,099 Son súper sencillas 1208 00:57:12,099 --> 00:57:16,599 Entonces en vez de estar aquí, ahora yo tengo 56 variables 1209 00:57:16,599 --> 00:57:21,139 A poner 56 veces esta variable, pues no pongo esta 1210 00:57:21,139 --> 00:57:22,880 ¿Dudas? 1211 00:57:23,599 --> 00:57:25,719 Voy a parar esto porque...