1 00:00:00,000 --> 00:00:04,740 Pues vamos a ver, seguro que a muchos de vosotros os viene fenomenal hacerme caso 2 00:00:04,740 --> 00:00:10,500 y a los que no les venga fenomenal o están en absoluto silencio o aparentan que no lo están haciendo. 3 00:00:11,240 --> 00:00:11,880 Se puede elegir. 4 00:00:13,259 --> 00:00:15,480 Venga, pues a ver, este ejercicio 11 de aquí. 5 00:00:16,879 --> 00:00:19,460 Este ejercicio 11 tenemos que ponernos en contexto. 6 00:00:19,640 --> 00:00:23,219 Se supone que responde a la aplicación de un cajero, 7 00:00:23,660 --> 00:00:27,000 un cajero en la que yo puedo meter dinero y sacar dinero. 8 00:00:27,000 --> 00:00:29,039 Ya está, responde a la aplicación de un cajero. 9 00:00:29,039 --> 00:00:58,060 Entonces, cuando nosotros damos al botoncito que sea para aceptar hacer ingreso o para aceptar retirar dinero, pues ese botoncito invocará el método correspondiente, ¿vale? Para ello, previamente nos hemos autenticado con nuestra tarjeta y al autenticarnos con nuestra tarjeta ha aparecido en ese programa que se está ejecutando en el cajero, ha aparecido el objeto cuenta asociado a esa tarjeta, ¿vale? 10 00:00:58,060 --> 00:01:26,989 Bueno, pues entonces, cuando nosotros hemos metido la tarjetita en el cajero, se ejecuta este programa, este main de aquí, se ejecuta en este programa y este programa, sacando los datos de nuestra tarjeta, instancia el objeto cuenta asociado, instancia el objeto cuenta asociado. 11 00:01:26,989 --> 00:01:29,769 para ahora ya poder hacer cosas con esa cuenta 12 00:01:29,769 --> 00:01:32,409 como ingresar o retirar, ingresar o retirar 13 00:01:32,409 --> 00:01:34,450 que es las únicas dos cosas que me permite hacer 14 00:01:34,450 --> 00:01:37,629 podría permitirme hacer más cosas, mostrar saldo 15 00:01:37,629 --> 00:01:40,590 más cosas, pero bueno, este cajero solo nos permite 16 00:01:40,590 --> 00:01:41,750 meter dinero y sacar dinero 17 00:01:41,750 --> 00:01:45,250 nos hemos autenticado y ha instanciado nuestro objeto cuenta 18 00:01:45,250 --> 00:01:49,609 cuenta es un objeto complejo porque tiene datos dentro 19 00:01:49,609 --> 00:01:52,150 podría tener nombre del titular, saldo que tiene 20 00:01:52,150 --> 00:01:53,909 lo que fuera, es un objeto complejo 21 00:01:53,909 --> 00:01:56,450 con lo cual este objeto no se puede declarar 22 00:01:56,450 --> 00:01:58,230 como un único tipo primitivo 23 00:01:58,230 --> 00:02:00,269 o string, no, se declara 24 00:02:00,269 --> 00:02:02,370 como un tipo cuenta porque tiene muchos datos dentro 25 00:02:02,370 --> 00:02:03,670 y ahora ya 26 00:02:03,670 --> 00:02:05,989 ese tipo cuenta que es un tipo objeto 27 00:02:05,989 --> 00:02:07,650 no nos queda más remedio que declararlo 28 00:02:07,650 --> 00:02:09,090 declararlo 29 00:02:09,090 --> 00:02:12,509 dándole las propiedades que interesan 30 00:02:12,509 --> 00:02:14,069 de la cuenta para esta 31 00:02:14,069 --> 00:02:14,750 aplicación 32 00:02:14,750 --> 00:02:17,909 esto ya me lo dice el enunciado, si no 33 00:02:17,909 --> 00:02:18,569 pues el que 34 00:02:18,569 --> 00:02:22,289 me ha dicho, oye ven a programarme 35 00:02:22,289 --> 00:02:23,430 el software del cajero 36 00:02:23,430 --> 00:02:25,750 Pues si no el que me lo ha dicho tendría que decirme 37 00:02:25,750 --> 00:02:28,430 Oye, mi aplicación del cajero solo va a hacer esto 38 00:02:28,430 --> 00:02:30,789 Entonces solo necesito estos datos 39 00:02:30,789 --> 00:02:33,449 Pues ese ya nos lo ha dicho 40 00:02:33,449 --> 00:02:37,750 Y nos ha dicho que los únicos datos que necesita de la cuenta del usuario 41 00:02:37,750 --> 00:02:41,610 Para poder hacer las operaciones que se van a hacer 42 00:02:41,610 --> 00:02:43,150 Son titular y cantidad 43 00:02:43,150 --> 00:02:44,110 Muy bien 44 00:02:44,110 --> 00:02:46,770 Pues entonces ya tenemos todo lo que necesitamos 45 00:02:46,770 --> 00:02:49,729 Para declarar este tipo de datos complejo 46 00:02:49,729 --> 00:02:52,710 Pues ahora ya nos hacemos 47 00:02:52,710 --> 00:02:54,349 Nuestra clase cuenta 48 00:02:54,349 --> 00:03:03,759 Y ahora esta clase cuenta de aquí 49 00:03:03,759 --> 00:03:06,419 ¿Por qué se caracteriza la cuenta del usuario? 50 00:03:07,659 --> 00:03:08,860 No os lo acaban de decir 51 00:03:08,860 --> 00:03:11,699 Pues se caracteriza por el nombre del titular 52 00:03:11,699 --> 00:03:15,580 Y se caracteriza por el saldo que tiene 53 00:03:15,580 --> 00:03:16,340 ¿No? Nada más 54 00:03:16,340 --> 00:03:20,780 Ábrete 55 00:03:20,780 --> 00:03:21,439 Ahí 56 00:03:21,439 --> 00:03:24,139 Por la cantidad puede tener decimales 57 00:03:24,139 --> 00:03:25,199 Luego un double 58 00:03:25,199 --> 00:03:31,460 ala, por estas dos cosas se caracteriza 59 00:03:31,460 --> 00:03:32,439 ya está 60 00:03:32,439 --> 00:03:34,199 entonces 61 00:03:34,199 --> 00:03:37,840 cuando el programa de mi cajero 62 00:03:37,840 --> 00:03:38,400 arranca 63 00:03:38,400 --> 00:03:41,879 cuando estoy aquí 64 00:03:41,879 --> 00:03:43,900 porque yo he metido la tarjeta 65 00:03:43,900 --> 00:03:45,840 pues se instancia el objeto cuenta 66 00:03:45,840 --> 00:03:48,439 y además 67 00:03:48,439 --> 00:03:51,960 se inician sus propiedades 68 00:03:51,960 --> 00:03:53,900 con las que lea de mi tarjeta 69 00:03:54,479 --> 00:03:56,979 pues nombre, el que sea 70 00:03:56,979 --> 00:03:59,539 aquí lo vamos a pedir por teclado 71 00:03:59,539 --> 00:04:01,080 pero en una aplicación real 72 00:04:01,080 --> 00:04:03,460 no te lo pediría por teclado 73 00:04:03,460 --> 00:04:05,240 cómo te llamas y cuánto saldo tienes 74 00:04:05,240 --> 00:04:07,699 sino que leería los datos de tu usuario 75 00:04:07,699 --> 00:04:09,360 de la tarjeta, se conectaría a la base de datos 76 00:04:09,360 --> 00:04:11,639 lo que fuera, pero bueno, aquí vamos a simular 77 00:04:11,639 --> 00:04:15,680 que en lugar de cogerlo de la base 78 00:04:15,680 --> 00:04:17,459 de datos con el identificador 79 00:04:17,459 --> 00:04:19,360 de la tarjeta, pues te lo pide a ti 80 00:04:19,360 --> 00:04:21,439 porque no sabemos 81 00:04:21,439 --> 00:04:23,279 recoger datos de otra manera 82 00:04:23,279 --> 00:04:34,949 entonces ponemos 83 00:04:34,949 --> 00:04:35,730 el escáner 84 00:04:35,730 --> 00:04:37,870 Vamos a usar 85 00:04:37,870 --> 00:04:51,410 Vale 86 00:04:51,410 --> 00:04:53,430 Y ahora el nombre 87 00:04:53,430 --> 00:04:55,410 Pues el nombre que sea 88 00:04:55,410 --> 00:04:57,790 Ah, perdón, cuenta.nombre 89 00:04:57,790 --> 00:04:58,750 Ya lo he leído, nombre 90 00:04:58,750 --> 00:05:00,970 Nombre 91 00:05:00,970 --> 00:05:03,490 O pongo aquí el scan next line 92 00:05:03,490 --> 00:05:05,170 Me da igual, vale 93 00:05:05,170 --> 00:05:06,509 Puedo poner aquí, de hecho 94 00:05:06,509 --> 00:05:08,649 Vaya tontería usar una variable auxiliar 95 00:05:08,649 --> 00:05:10,930 Vamos a directamente 96 00:05:10,930 --> 00:05:15,279 Poner esto aquí 97 00:05:15,279 --> 00:05:19,589 Vale 98 00:05:19,589 --> 00:05:22,829 entonces, dime tu nombre 99 00:05:22,829 --> 00:05:25,069 y cuenta.nombre 100 00:05:25,069 --> 00:05:30,750 no se puede resolver, no es un campo 101 00:05:30,750 --> 00:05:31,750 porque lo he llamado titular 102 00:05:31,750 --> 00:05:36,069 vale, lo he llamado titular, pues cuenta.titular 103 00:05:36,069 --> 00:05:39,029 vale, y ahora el siguiente dato 104 00:05:39,029 --> 00:05:41,569 en lugar de leerlo de una base de datos, nuestro cajero 105 00:05:41,569 --> 00:05:45,389 pues, nos lo pide 106 00:05:45,389 --> 00:05:47,730 porque no sabemos hacerlo de otra manera 107 00:05:47,730 --> 00:05:56,680 y ahora el saldo 108 00:05:56,680 --> 00:05:58,639 cuenta.cantidad 109 00:05:58,639 --> 00:06:02,279 igual a scan.nextTab 110 00:06:02,279 --> 00:06:03,779 ala 111 00:06:03,779 --> 00:06:06,699 esto es lo que ha ocurrido 112 00:06:06,699 --> 00:06:08,620 cuando el cajero arranca 113 00:06:08,620 --> 00:06:09,759 y le metemos la tarjeta 114 00:06:09,759 --> 00:06:10,319 que pum 115 00:06:10,319 --> 00:06:12,459 se ha instanciado el objeto cuenta 116 00:06:12,459 --> 00:06:15,100 asociado con nuestros datos 117 00:06:15,100 --> 00:06:17,800 y nuestros datos son el titular y la cantidad 118 00:06:17,800 --> 00:06:18,300 vale 119 00:06:18,300 --> 00:06:21,660 y ahora el cajero se pone a ofrecernos 120 00:06:21,660 --> 00:06:24,339 las únicas opciones que nos puede ofrecer 121 00:06:24,339 --> 00:06:25,259 que son 122 00:06:25,259 --> 00:06:27,519 según lo que me ha dicho el 123 00:06:27,519 --> 00:06:29,920 que me ha pedido el software, el cliente 124 00:06:29,920 --> 00:06:31,279 pues lo único que podemos hacer son 125 00:06:31,279 --> 00:06:32,860 ingresar y retirar dinero 126 00:06:32,860 --> 00:06:35,560 es lo único que se puede hacer 127 00:06:35,560 --> 00:06:36,360 con esta 128 00:06:36,360 --> 00:06:39,399 cuenta, lo único que se puede hacer 129 00:06:39,399 --> 00:06:41,660 ingresar y retirar dinero, pues ahora 130 00:06:41,660 --> 00:06:43,220 este cajero ahora ya 131 00:06:43,220 --> 00:06:45,759 está todo el rato diciéndote que quieres hacer 132 00:06:45,759 --> 00:06:47,480 hasta que le des la opción de salir 133 00:06:47,480 --> 00:06:49,920 que ya me voy, que ya no quiero ingresar ni retirar más 134 00:06:49,920 --> 00:06:52,379 pues 135 00:06:52,379 --> 00:06:54,199 ¿Qué quieres hacer? 136 00:06:54,879 --> 00:06:55,560 Ingreso 137 00:06:55,560 --> 00:06:58,600 ¿O qué quieres hacer? 138 00:07:00,910 --> 00:07:02,470 Retirada de efectivo 139 00:07:02,470 --> 00:07:03,829 ¿O te vas ya? 140 00:07:04,310 --> 00:07:05,129 Si te vas ya 141 00:07:05,129 --> 00:07:07,730 Pues ya cierro 142 00:07:07,730 --> 00:07:09,910 Cierro todo 143 00:07:09,910 --> 00:07:16,740 Ahora pues tendremos que mirar la opción 144 00:07:16,740 --> 00:07:30,439 Y ahora en función 145 00:07:30,439 --> 00:07:31,360 De la opción 146 00:07:31,360 --> 00:07:33,199 La opción 147 00:07:33,199 --> 00:07:34,920 Está sin declarar 148 00:07:34,920 --> 00:07:37,319 ¿Por qué no la declaro ahí dentro? 149 00:07:37,480 --> 00:07:39,339 Ya no sabemos todas estas cosas de memoria 150 00:07:39,339 --> 00:07:41,740 Porque la opción es la condición del bucle 151 00:07:41,740 --> 00:07:44,240 Mientras la opción sea diferente de salir 152 00:07:44,240 --> 00:07:46,620 Entonces como la opción es la condición del bucle 153 00:07:46,620 --> 00:07:50,180 Y la condición del bucle está fuera de mi bloque 154 00:07:50,180 --> 00:07:52,879 Pues tengo que declararlo fuera del bloque 155 00:07:52,879 --> 00:07:54,360 Porque si lo he declarado adentro 156 00:07:54,360 --> 00:07:57,680 Pues ya no sabemos de memoria que si lo declaro aquí dentro 157 00:07:57,680 --> 00:08:00,319 Esa variable solo es accesible dentro de este bloque 158 00:08:00,319 --> 00:08:02,399 Luego aquí no puedo ponerla 159 00:08:02,399 --> 00:08:03,420 Dígame 160 00:08:03,420 --> 00:08:13,259 no, esta es la condición para seguir 161 00:08:13,259 --> 00:08:15,639 preguntándote, mientras sea diferente de cero 162 00:08:15,639 --> 00:08:16,139 vuelve a entrar 163 00:08:16,139 --> 00:08:21,519 ah, bueno, a ver, es que estoy haciendo 164 00:08:21,519 --> 00:08:23,399 un cajero genérico hasta el punto de salir 165 00:08:23,399 --> 00:08:25,240 vale, entonces tienes razón 166 00:08:25,240 --> 00:08:27,819 aquí lo que dice exactamente, de forma repetida 167 00:08:27,819 --> 00:08:29,639 y terminará, vamos a la relación 168 00:08:29,639 --> 00:08:31,600 de salir o cuando te quedes sin dinero 169 00:08:31,600 --> 00:08:33,659 vamos a darle las dos opciones, salir o cuando 170 00:08:33,659 --> 00:08:35,740 te quedes sin dinero, entonces según eso 171 00:08:35,740 --> 00:08:37,700 aquí la condición sería 172 00:08:37,700 --> 00:08:39,379 mientras la opción sea diferente de cero 173 00:08:39,379 --> 00:08:41,440 sigue preguntando y además de ser 174 00:08:41,440 --> 00:08:42,379 diferente de cero 175 00:08:42,379 --> 00:08:44,159 si 176 00:08:44,159 --> 00:08:47,759 no, lo de salir 177 00:08:47,759 --> 00:08:48,820 la opción de salir me la he inventado 178 00:08:48,820 --> 00:08:51,379 cuenta, es decir 179 00:08:51,379 --> 00:08:53,460 tú haces operaciones en el cajero 180 00:08:53,460 --> 00:08:55,100 ingresa a retirar, ingresa a retirar 181 00:08:55,100 --> 00:08:57,379 cuando te has quedado a cero, ya el cajero 182 00:08:57,379 --> 00:08:59,379 se te bloquea, pero tú te puedes ir 183 00:08:59,379 --> 00:09:01,440 antes, se ha habilitado la opción de irte 184 00:09:01,440 --> 00:09:03,340 antes si quieres, sin necesidad de haber agotado 185 00:09:03,340 --> 00:09:03,820 todo el dinero 186 00:09:03,820 --> 00:09:06,700 ¿Vale? Que sería 187 00:09:06,700 --> 00:09:08,820 Hombre, feo, ¿no? Que te obligue el cajero a 188 00:09:08,820 --> 00:09:10,840 Sacarlo todo antes de irte 189 00:09:10,840 --> 00:09:11,940 Pues es un poco feo 190 00:09:11,940 --> 00:09:14,840 Cuenta, punto, cantidad 191 00:09:14,840 --> 00:09:17,120 Sea mayor que cero 192 00:09:17,120 --> 00:09:19,360 Mientras no me des 193 00:09:19,360 --> 00:09:21,120 A la opción de cero y además 194 00:09:21,120 --> 00:09:23,299 Y además, te quedes saldo 195 00:09:23,299 --> 00:09:25,700 Te permito seguir operando 196 00:09:25,700 --> 00:09:27,139 Te permito seguir operando 197 00:09:27,139 --> 00:09:29,519 Pero como me des la opción de salir 198 00:09:29,519 --> 00:09:31,659 O te quedes a cero 199 00:09:31,659 --> 00:09:33,879 Entonces 200 00:09:33,879 --> 00:09:35,940 Te vas 201 00:09:35,940 --> 00:09:38,519 El cajero se cierra 202 00:09:38,519 --> 00:09:40,840 ¿Vale? Entonces cuando salgamos de aquí 203 00:09:40,840 --> 00:09:45,470 ¡Hala! 204 00:09:49,600 --> 00:09:50,120 Ya está 205 00:09:50,120 --> 00:09:52,480 Le podríamos hasta informar 206 00:09:52,480 --> 00:09:54,759 Si se va porque le hemos dado salir 207 00:09:54,759 --> 00:09:57,259 O si se va porque se ha quedado sin dinero 208 00:09:57,259 --> 00:09:58,419 Entonces 209 00:09:58,419 --> 00:10:01,039 Si cuenta.cantidad 210 00:10:01,039 --> 00:10:03,500 Es mayor que cero 211 00:10:03,500 --> 00:10:04,679 Te vas 212 00:10:04,679 --> 00:10:06,779 Porque has dado salir 213 00:10:06,779 --> 00:10:09,639 no porque te obligue yo porque has llegado a cero 214 00:10:09,639 --> 00:10:12,960 y si cantidad es igual a cero 215 00:10:12,960 --> 00:10:16,059 entonces no puedes seguir operando 216 00:10:16,059 --> 00:10:19,320 porque 217 00:10:19,320 --> 00:10:22,580 te has quedado sin pasta 218 00:10:22,580 --> 00:10:33,389 porque no tienes dinero 219 00:10:33,389 --> 00:10:37,750 bueno, pues un pequeño tuneo de este cajero 220 00:10:37,750 --> 00:10:48,070 vale, pues ahora 221 00:10:48,070 --> 00:10:50,090 nos entramos en el do while 222 00:10:50,090 --> 00:10:51,929 Una vez leída la opción 223 00:10:51,929 --> 00:10:54,570 Ahora ya sí que sí, el cajero tiene que operar 224 00:10:54,570 --> 00:10:56,450 Y en función de 225 00:10:56,450 --> 00:10:58,210 La opción que el usuario 226 00:10:58,210 --> 00:10:59,710 Ha introducido, pues ahora ya 227 00:10:59,710 --> 00:11:02,409 ¿Qué hemos introducido en la opción? 228 00:11:03,090 --> 00:11:03,610 Uno 229 00:11:03,610 --> 00:11:05,669 Pues haces una cosa 230 00:11:05,669 --> 00:11:11,159 ¿Qué hemos introducido en la opción? 231 00:11:11,440 --> 00:11:11,919 Dos 232 00:11:11,919 --> 00:11:16,169 Haces otra cosa 233 00:11:16,169 --> 00:11:17,789 Ahora la pondremos 234 00:11:17,789 --> 00:11:20,389 ¿Qué has introducido en la opción? Cero 235 00:11:20,389 --> 00:11:22,710 Nada 236 00:11:22,710 --> 00:11:24,070 Porque ya te va a decir aquí 237 00:11:24,070 --> 00:11:25,809 Gracias y adiós 238 00:11:25,809 --> 00:11:26,909 Ya has introducido la 0 239 00:11:26,909 --> 00:11:28,789 Ya está 240 00:11:28,789 --> 00:11:33,409 Vamos a ponerle un default 241 00:11:33,409 --> 00:11:35,570 Porque si no he introducido 242 00:11:35,570 --> 00:11:37,070 Ni la 1 ni la 2 243 00:11:37,070 --> 00:11:38,370 Bueno, en el caso de la 0 244 00:11:38,370 --> 00:11:39,409 También te diría la 0 245 00:11:39,409 --> 00:11:40,970 Para que sea opción incorrecta 246 00:11:40,970 --> 00:11:43,350 Case 0 247 00:11:43,350 --> 00:11:49,029 Y ahora en el caso de que 248 00:11:49,029 --> 00:11:51,490 No sea ni la 1 ni la 2 ni la 0 249 00:11:51,490 --> 00:11:52,929 Pues sí 250 00:11:52,929 --> 00:11:55,450 Incorrecta 251 00:11:55,450 --> 00:11:56,990 Ala, ya está 252 00:11:56,990 --> 00:11:59,389 Ahora, estas opciones son las que nos interesan 253 00:11:59,389 --> 00:12:00,330 Las que están aquí dentro 254 00:12:00,330 --> 00:12:03,409 Bueno, pues aquí que hay que hacer 255 00:12:03,409 --> 00:12:05,190 Meter dinero en la cuenta 256 00:12:05,190 --> 00:12:05,970 Vale 257 00:12:05,970 --> 00:12:09,330 Pues aquí un diseño 258 00:12:09,330 --> 00:12:10,409 Por supuesto sería 259 00:12:10,409 --> 00:12:11,450 Dime 260 00:12:11,450 --> 00:12:13,450 Así de repente 261 00:12:13,450 --> 00:12:17,750 Joder, pero porque no te has meado hace 10 minutos 262 00:12:17,750 --> 00:12:18,950 Que era cambio de clase 263 00:12:18,950 --> 00:12:20,909 Pues quien sabe como funciona el cuerpo 264 00:12:20,909 --> 00:12:22,710 Anda tira 265 00:12:22,710 --> 00:12:23,789 Pero de verdad es que 266 00:12:23,789 --> 00:12:26,690 Tenéis una vejiga muy extraña 267 00:12:26,690 --> 00:12:28,190 bueno 268 00:12:28,190 --> 00:12:30,669 vale, entonces aquí 269 00:12:30,669 --> 00:12:33,029 un diseño posible de la aplicación sería 270 00:12:33,029 --> 00:12:34,110 pues 271 00:12:34,110 --> 00:12:38,440 sería 272 00:12:38,440 --> 00:12:41,759 dame el dinero 273 00:12:41,759 --> 00:12:44,240 o sea, dime que dinero vas a introducir 274 00:12:44,240 --> 00:12:46,200 aparte 275 00:12:46,200 --> 00:12:48,399 lo metes físicamente, claro, tendrá la aplicación 276 00:12:48,399 --> 00:12:50,080 luego ya su parte de sensores 277 00:12:50,080 --> 00:12:52,360 para detectar que has 278 00:12:52,360 --> 00:12:53,500 metido tu dinero 279 00:12:53,500 --> 00:12:56,299 y contártelo, esa será la parte 280 00:12:56,299 --> 00:12:58,279 de robótica, pero el resultado final 281 00:12:58,279 --> 00:13:00,440 va a ser que al proceso este 282 00:13:00,440 --> 00:13:02,299 que a la aplicación le llega ya una cantidad 283 00:13:02,299 --> 00:13:05,159 38, 42,9 284 00:13:05,159 --> 00:13:06,159 ya le llega una cantidad 285 00:13:06,159 --> 00:13:08,320 llegará pues efectivamente por una parte 286 00:13:08,320 --> 00:13:09,860 de sensores contando los billetes 287 00:13:09,860 --> 00:13:11,580 pero al final le ha llegado una cantidad 288 00:13:11,580 --> 00:13:14,419 pues aquí un posible diseño sería este que sería 289 00:13:14,419 --> 00:13:15,480 pues muy horrible 290 00:13:15,480 --> 00:13:17,139 que sería 291 00:13:17,139 --> 00:13:23,259 a ver 292 00:13:23,259 --> 00:13:37,200 int 293 00:13:37,200 --> 00:13:47,379 una cantidad 294 00:13:47,379 --> 00:13:49,360 con next double no next int 295 00:13:49,360 --> 00:13:54,490 Entonces aquí se la vamos a decir a mano 296 00:13:54,490 --> 00:13:56,929 Pero el cajero realmente sacaría ese dato 297 00:13:56,929 --> 00:13:58,110 Esta cantidad 298 00:13:58,110 --> 00:14:00,649 La sacaría de su lector de billetes 299 00:14:00,649 --> 00:14:01,370 O de lo que fuera 300 00:14:01,370 --> 00:14:03,509 Y ahora ya podríamos hacer 301 00:14:03,509 --> 00:14:06,009 Cuenta.cantidad 302 00:14:06,009 --> 00:14:10,070 Más igual 303 00:14:10,070 --> 00:14:10,929 Esto 304 00:14:10,929 --> 00:14:14,590 ¿Vale? Este sería un diseño posible 305 00:14:14,590 --> 00:14:16,230 De la aplicación y no pasa nada 306 00:14:16,230 --> 00:14:17,850 Le estamos dando una cantidad 307 00:14:17,850 --> 00:14:19,610 Y la suma a cuenta 308 00:14:19,610 --> 00:14:21,049 Y es un diseño posible 309 00:14:21,049 --> 00:14:23,730 Pero este diseño es feo 310 00:14:23,730 --> 00:14:26,649 porque va en contra de los principios 311 00:14:26,649 --> 00:14:28,129 de la relación entre dos objetos, que es 312 00:14:28,129 --> 00:14:30,570 vamos a separar tareas, vamos a separar 313 00:14:30,570 --> 00:14:31,970 partes, todo relacionado con cuenta 314 00:14:31,970 --> 00:14:34,070 que se haga en la clase cuenta 315 00:14:34,070 --> 00:14:36,570 y así esa clase cuenta se queda 316 00:14:36,570 --> 00:14:38,110 como un objeto estupendo 317 00:14:38,110 --> 00:14:40,409 que tiene propiedades y además tiene 318 00:14:40,409 --> 00:14:42,529 comportamiento, todo dentro 319 00:14:42,529 --> 00:14:44,649 y el programa 320 00:14:44,649 --> 00:14:47,070 principal, el main, se despreocupa 321 00:14:47,070 --> 00:14:48,629 ya de hacer el código de esos 322 00:14:48,629 --> 00:14:50,610 ingresos y de esas retiradas, porque 323 00:14:50,610 --> 00:14:52,509 ese código ya está metido 324 00:14:52,509 --> 00:14:53,649 dentro de la clase cuenta 325 00:14:53,649 --> 00:14:56,009 entonces ese es el principio de 326 00:14:56,009 --> 00:14:58,149 encapsulación que se llama 327 00:14:58,149 --> 00:15:00,509 todos los comportamientos 328 00:15:00,509 --> 00:15:01,870 relacionados con las cuentas 329 00:15:01,870 --> 00:15:03,309 que en este ejercicio sencillo es 330 00:15:03,309 --> 00:15:06,049 ingresar una cantidad 331 00:15:06,049 --> 00:15:07,029 o retirar una cantidad 332 00:15:07,029 --> 00:15:08,750 todo ese comportamiento 333 00:15:08,750 --> 00:15:11,769 vamos a declararlo y encapsularlo 334 00:15:11,769 --> 00:15:12,730 dentro de la clase cuenta 335 00:15:12,730 --> 00:15:14,769 y se queda ya como una cosa completita 336 00:15:14,769 --> 00:15:17,070 con propiedades que la caracterizan 337 00:15:17,070 --> 00:15:18,169 y cosas que puede hacer 338 00:15:18,169 --> 00:15:20,070 y ahí se queda encapsulado 339 00:15:20,070 --> 00:15:22,409 y ahora ya cualquier programa 340 00:15:22,409 --> 00:15:24,789 este main u otro programa 341 00:15:24,789 --> 00:15:26,610 de otro cajero que va a ser un poco 342 00:15:26,610 --> 00:15:28,250 distinto pero también va a usar cuentas 343 00:15:28,250 --> 00:15:30,889 pues cualquier otro software ahora con su propio 344 00:15:30,889 --> 00:15:32,889 main, llama a cuenta 345 00:15:32,889 --> 00:15:34,929 llama a su comportamiento 346 00:15:34,929 --> 00:15:36,669 y le da exactamente igual como este 347 00:15:36,669 --> 00:15:39,210 hecho por dentro, se limita a llamar 348 00:15:39,210 --> 00:15:40,210 a los métodos 349 00:15:40,210 --> 00:15:42,710 esa sería la manera buena de 350 00:15:42,710 --> 00:15:44,730 programarlo, cada clase engloba 351 00:15:44,730 --> 00:15:45,990 dentro, encapsula dentro 352 00:15:45,990 --> 00:15:48,629 todos los detalles de el 353 00:15:48,629 --> 00:15:50,110 comportamiento, de lo que va a hacer 354 00:15:50,110 --> 00:15:52,190 y los main se limitan a llamarlo 355 00:15:52,190 --> 00:15:54,149 como si fuera una función auxiliar 356 00:15:54,149 --> 00:15:55,970 pero al main le da igual como hacerlo 357 00:15:55,970 --> 00:15:57,730 sin embargo con este diseño 358 00:15:57,730 --> 00:15:58,970 el main 359 00:15:58,970 --> 00:16:01,049 está haciendo él 360 00:16:01,049 --> 00:16:02,629 el propio código 361 00:16:02,629 --> 00:16:05,730 está pidiendo la cantidad, la está leyendo, la está sumando 362 00:16:05,730 --> 00:16:07,690 a esta propiedad, está haciendo el propio código 363 00:16:07,690 --> 00:16:09,289 aquí son tres líneas 364 00:16:09,289 --> 00:16:11,470 pero en una aplicación normal no es así 365 00:16:11,470 --> 00:16:13,450 entonces sería un desastre de aplicación 366 00:16:13,450 --> 00:16:15,509 si el propio main lo tiene que hacer todo 367 00:16:15,509 --> 00:16:17,309 ¿de qué nos vale entonces hacer una clase 368 00:16:17,309 --> 00:16:18,570 si no podemos meter en ella 369 00:16:18,570 --> 00:16:20,730 los detalles de su comportamiento? 370 00:16:20,730 --> 00:16:22,470 vaya diseño tan 371 00:16:22,470 --> 00:16:24,529 vaya a matar moscas a cañonazos 372 00:16:24,529 --> 00:16:26,149 para hacerme 373 00:16:26,149 --> 00:16:29,110 esto, un cuenta y dejarlo así 374 00:16:29,110 --> 00:16:30,789 pues para esto no te hagas nada 375 00:16:30,789 --> 00:16:32,509 ¿vale? claro, es que no 376 00:16:32,509 --> 00:16:33,710 diseñamos así 377 00:16:33,710 --> 00:16:36,049 entonces si hemos hecho una clase cuenta 378 00:16:36,049 --> 00:16:38,730 y queremos que con las cuentas se hagan 379 00:16:38,730 --> 00:16:40,789 cosas como ingresar dinero 380 00:16:40,789 --> 00:16:41,649 o retirar dinero 381 00:16:41,649 --> 00:16:44,850 pues vamos a programar esos comportamientos aquí dentro 382 00:16:44,850 --> 00:16:46,409 y ahí se quedan encerrados 383 00:16:46,409 --> 00:16:48,169 y ahora ya cualquiera 384 00:16:48,169 --> 00:16:50,809 que quiera trabajar con cuentas 385 00:16:50,809 --> 00:16:52,529 llama a eso y se acabó 386 00:16:52,529 --> 00:16:53,750 y le da igual como esté hecho 387 00:16:53,750 --> 00:16:58,139 pues entonces, esto de ingresar 388 00:16:58,139 --> 00:16:59,159 nada de hacerlo aquí 389 00:16:59,159 --> 00:17:00,419 ¿vale? 390 00:17:02,740 --> 00:17:04,380 ahora ya el ejercicio nos lo dice 391 00:17:04,380 --> 00:17:06,359 porque nos lo da detallado lo que tenemos que hacer 392 00:17:06,359 --> 00:17:08,119 pero claro, nos lo dice porque este proceso 393 00:17:08,119 --> 00:17:09,779 de diseño ya se ha hecho previamente 394 00:17:09,779 --> 00:17:11,759 aquí nos dice 395 00:17:11,759 --> 00:17:12,900 vamos a hacer un método 396 00:17:12,900 --> 00:17:16,039 que ingrese una cantidad 397 00:17:16,039 --> 00:17:18,359 dentro de la clase cuenta 398 00:17:18,359 --> 00:17:20,599 a esa cuenta y ya está. 399 00:17:21,500 --> 00:17:22,960 Si además es negativa, 400 00:17:24,099 --> 00:17:25,200 asume que se ha equivocado 401 00:17:25,200 --> 00:17:26,180 el cajero sumando 402 00:17:26,180 --> 00:17:27,720 y no ingreses nada. 403 00:17:29,200 --> 00:17:30,819 Pues venga, vamos a hacer ahora este método. 404 00:17:31,480 --> 00:17:32,859 Este método, su sitio 405 00:17:32,859 --> 00:17:34,519 es aquí, en la clase cuenta, 406 00:17:35,079 --> 00:17:37,200 porque lo que va a hacer está relacionado 407 00:17:37,200 --> 00:17:37,980 con las cuentas. 408 00:17:38,819 --> 00:17:40,799 ¿Cómo se va a llamar? Pues ingresar, 409 00:17:40,940 --> 00:17:42,380 que es un nombre bien explicativo. 410 00:17:44,079 --> 00:17:45,180 ¿Qué hay que pasarle 411 00:17:45,180 --> 00:17:47,059 como parámetro? Una cantidad. 412 00:17:47,059 --> 00:17:49,240 La cantidad que vamos a ingresar 413 00:17:49,240 --> 00:17:51,259 Vamos a llamarla cantidad, por ejemplo 414 00:17:51,259 --> 00:17:53,380 Ahora 415 00:17:53,380 --> 00:17:56,059 Este método me entrega algo de vuelta 416 00:17:56,059 --> 00:17:57,759 No me entrega nada 417 00:17:57,759 --> 00:18:00,119 Porque su efecto ya se queda reflejado aquí 418 00:18:00,119 --> 00:18:01,980 Su efecto ya se va a quedar 419 00:18:01,980 --> 00:18:03,220 Reflejado en esta variable 420 00:18:03,220 --> 00:18:04,180 ¿Verdad? 421 00:18:05,099 --> 00:18:07,859 Entonces, el tipo de dato vamos a ponerlo ahora después 422 00:18:07,859 --> 00:18:09,859 Porque 423 00:18:09,859 --> 00:18:12,559 ¿Qué hace el método? Para entender bien que no me devuelve nada 424 00:18:12,559 --> 00:18:14,279 Pues vamos a mirar 425 00:18:14,279 --> 00:18:15,099 Si cantidad 426 00:18:15,099 --> 00:18:17,099 es positiva 427 00:18:17,099 --> 00:18:19,779 porque sólo si es positiva 428 00:18:19,779 --> 00:18:22,140 hago yo algo 429 00:18:22,140 --> 00:18:23,380 si es negativa no hago nada 430 00:18:23,380 --> 00:18:24,759 se supone que ha habido un error de lectura 431 00:18:24,759 --> 00:18:27,079 pues si la cantidad es positiva 432 00:18:27,079 --> 00:18:28,599 ahora eso es lo que decíamos ayer 433 00:18:28,599 --> 00:18:30,420 tengo aquí la ambigüedad 434 00:18:30,420 --> 00:18:31,640 pero espérate tú 435 00:18:31,640 --> 00:18:33,759 cuando pongo yo aquí cantidad 436 00:18:33,759 --> 00:18:35,140 ¿a quién me estoy refiriendo? 437 00:18:35,460 --> 00:18:37,660 ¿me estoy refiriendo al parámetro cantidad? 438 00:18:38,440 --> 00:18:41,480 ¿o me estoy refiriendo a la propiedad cantidad de la clase? 439 00:18:41,740 --> 00:18:42,579 ¿a quién me estoy refiriendo? 440 00:18:42,640 --> 00:18:43,480 aquí hay una antigüedad 441 00:18:43,480 --> 00:18:45,839 una antigüedad, una ambigüedad 442 00:18:45,839 --> 00:18:46,359 enorme 443 00:18:46,359 --> 00:18:49,160 bueno, pues Jabba te dice 444 00:18:49,160 --> 00:18:51,259 si tú me das cantidad 445 00:18:51,259 --> 00:18:53,500 en una situación en la cual hay esta 446 00:18:53,500 --> 00:18:55,460 ambigüedad, y es que un 447 00:18:55,460 --> 00:18:57,839 parámetro se llama igual que una propiedad 448 00:18:57,839 --> 00:18:59,599 si tú me das el 449 00:18:59,599 --> 00:19:01,839 nombre, yo voy a entender siempre 450 00:19:01,839 --> 00:19:03,440 que te refieres a este 451 00:19:03,440 --> 00:19:05,619 ah, pues aquí entonces 452 00:19:05,619 --> 00:19:07,539 está bien, has entendido bien, porque yo aquí me 453 00:19:07,539 --> 00:19:09,400 refería a este, pero es que ahora quiero poner 454 00:19:09,400 --> 00:19:10,579 que esta otra cantidad 455 00:19:10,579 --> 00:19:12,599 quiero poner que esta otra 456 00:19:12,599 --> 00:19:18,190 quiero poner que esta otra 457 00:19:18,190 --> 00:19:20,549 se incremente con el parámetro 458 00:19:20,549 --> 00:19:24,049 puesto así es una estupidez 459 00:19:24,049 --> 00:19:26,730 porque cantidad a palo seco 460 00:19:26,730 --> 00:19:27,789 ya Java me ha dicho 461 00:19:27,789 --> 00:19:29,769 cantidad a palo seco es el parámetro 462 00:19:29,769 --> 00:19:32,089 entonces al propio parámetro le estoy sumando su valor 463 00:19:32,089 --> 00:19:34,349 es estúpido, es que este no es 464 00:19:34,349 --> 00:19:35,730 el parámetro, esta es la propiedad 465 00:19:35,730 --> 00:19:37,970 bueno, pues ya dijimos el miércoles 466 00:19:37,970 --> 00:19:39,970 que como 467 00:19:39,970 --> 00:19:42,509 especificábamos que este 468 00:19:42,509 --> 00:19:44,210 término se refiere a la propiedad 469 00:19:44,210 --> 00:19:45,309 y no se refiere al parámetro 470 00:19:45,309 --> 00:19:48,950 Vale 471 00:19:48,950 --> 00:19:50,710 Así 472 00:19:50,710 --> 00:19:52,190 Entonces, ahora 473 00:19:52,190 --> 00:19:55,509 Poniendo el dis delante, estamos especificando 474 00:19:55,509 --> 00:19:56,849 Oye tú, ¿qué cantidad 475 00:19:56,849 --> 00:19:59,109 Se refiere a la propiedad 476 00:19:59,109 --> 00:20:01,450 Cantidad del objeto 477 00:20:01,450 --> 00:20:02,210 En el que estoy 478 00:20:02,210 --> 00:20:05,089 Dis de hecho viene de ahí 479 00:20:05,089 --> 00:20:06,829 Viene de este objeto 480 00:20:06,829 --> 00:20:07,430 Este, este 481 00:20:07,430 --> 00:20:09,769 Este objeto 482 00:20:09,769 --> 00:20:16,240 Puedes hacer, a lo mejor puedes hacerlo 483 00:20:16,240 --> 00:20:18,380 a lo mejor no puedes hacerlo, porque a lo mejor esto 484 00:20:18,380 --> 00:20:20,660 esto es lo que se llama la firma 485 00:20:20,660 --> 00:20:22,500 del método, bueno nos falta poner todavía 486 00:20:22,500 --> 00:20:24,599 entonces la firma del método 487 00:20:24,599 --> 00:20:26,519 a veces, por diseño 488 00:20:26,519 --> 00:20:28,359 te viene ya fijada 489 00:20:28,359 --> 00:20:30,480 entonces a lo mejor tú no 490 00:20:30,480 --> 00:20:32,319 puedes cambiar cosas, porque esa firma 491 00:20:32,319 --> 00:20:34,519 ese método es llamado de muchos sitios 492 00:20:34,519 --> 00:20:36,180 usado por muchas partes 493 00:20:36,180 --> 00:20:38,240 y tú no puedes tocar y de repente cambiar las cosas 494 00:20:38,240 --> 00:20:40,539 y es que no hay 495 00:20:40,539 --> 00:20:41,740 necesidad, es que así 496 00:20:41,740 --> 00:20:43,140 queda muy claro 497 00:20:43,140 --> 00:20:55,279 así es que en realidad queda más claro 498 00:20:55,279 --> 00:20:57,819 a la vista, al ojo, si tú ves aquí cantidad 499 00:20:57,819 --> 00:21:01,420 que se llama igual que lo de arriba, automáticamente haces la conexión 500 00:21:01,420 --> 00:21:04,180 de que seguramente son dos conceptos 501 00:21:04,180 --> 00:21:07,500 relacionados, que con este estás queriendo 502 00:21:07,500 --> 00:21:09,539 hacer algo relacionado con el otro 503 00:21:09,539 --> 00:21:11,599 ya haces una conexión semántica 504 00:21:11,599 --> 00:21:13,799 entonces sí que tiene sentido que se llamen igual 505 00:21:13,799 --> 00:21:15,819 porque una cosa es la información 506 00:21:15,819 --> 00:21:17,299 lo que te dice algo 507 00:21:17,299 --> 00:21:20,000 y otra cosa es la meta información 508 00:21:20,000 --> 00:21:21,960 que es lo que tú 509 00:21:21,960 --> 00:21:23,960 extraes, la información añadida que tú 510 00:21:23,960 --> 00:21:25,920 extraes, entonces tú viendo aquí 511 00:21:25,920 --> 00:21:27,180 que esto se llama igual que esto 512 00:21:27,180 --> 00:21:29,960 extraes automáticamente una información de que 513 00:21:29,960 --> 00:21:32,000 seguramente ese parámetro va a 514 00:21:32,000 --> 00:21:34,000 tocar o tiene relación con el de arriba 515 00:21:34,000 --> 00:21:35,400 seguramente, entonces 516 00:21:35,400 --> 00:21:37,940 sí tiene sentido que se llame igual, aparte que lo deja más 517 00:21:37,940 --> 00:21:40,019 claro, y aparte es que no hay 518 00:21:40,019 --> 00:21:42,200 como la alternativa 519 00:21:42,200 --> 00:21:44,559 es muy sencilla, es poner el dis y ya está 520 00:21:44,559 --> 00:21:48,089 ¿vale? bueno, pues entonces este método 521 00:21:48,089 --> 00:21:49,970 solo tendría este código 522 00:21:49,970 --> 00:21:52,069 si la cantidad es negativa 523 00:21:52,069 --> 00:21:53,910 la sumas 524 00:21:53,910 --> 00:21:54,950 a la propiedad 525 00:21:54,950 --> 00:21:57,250 que aquí cuando lo hemos hecho por código 526 00:21:57,250 --> 00:21:59,710 en el main, aquí ni siquiera 527 00:21:59,710 --> 00:22:01,750 lo habíamos verificado, aquí habría que haber metido 528 00:22:01,750 --> 00:22:02,569 un if, o sea, no 529 00:22:02,569 --> 00:22:05,589 bueno, ahora ya sí que 530 00:22:05,589 --> 00:22:07,569 vamos a pensar, este método 531 00:22:07,569 --> 00:22:09,950 me está devolviendo algo a mí 532 00:22:09,950 --> 00:22:11,750 valor de retorno cuando yo le llame 533 00:22:11,750 --> 00:22:14,009 no tiene por qué, porque su 534 00:22:14,009 --> 00:22:15,930 efecto, que es subir una cantidad 535 00:22:15,930 --> 00:22:17,869 su efecto ya se queda aquí 536 00:22:17,869 --> 00:22:19,950 reflejado, en la propiedad del objeto 537 00:22:19,950 --> 00:22:22,269 el propio objeto que llame al método 538 00:22:22,269 --> 00:22:23,950 ya 539 00:22:23,950 --> 00:22:26,009 refleja el resultado 540 00:22:26,009 --> 00:22:27,730 que es el incremento de la cantidad 541 00:22:27,730 --> 00:22:29,529 luego este método no tiene que devolver nada 542 00:22:29,529 --> 00:22:32,210 su efecto ya se ha quedado recogido 543 00:22:32,210 --> 00:22:34,269 aquí arriba, en este incremento, no tiene que devolver nada 544 00:22:34,269 --> 00:22:35,849 entonces como no devuelve nada 545 00:22:35,849 --> 00:22:38,269 pues yo planto un void, porque no devuelve nada 546 00:22:38,269 --> 00:22:41,049 y este método ya está aquí 547 00:22:41,049 --> 00:22:43,049 ahora ya 548 00:22:43,049 --> 00:22:50,250 un valor que tú quieres devolver 549 00:22:50,250 --> 00:22:50,970 y haces un return 550 00:22:50,970 --> 00:22:52,349 de esa variable 551 00:22:52,349 --> 00:22:57,690 claro, por ejemplo, este método 552 00:22:57,690 --> 00:22:59,849 podríamos modificarlo 553 00:22:59,849 --> 00:23:01,289 porque nos gusta más 554 00:23:01,289 --> 00:23:03,309 para que me devolviera 555 00:23:03,309 --> 00:23:05,390 la nueva cantidad 556 00:23:05,390 --> 00:23:07,809 por ejemplo 557 00:23:07,809 --> 00:23:09,569 entonces yo añadiría esto 558 00:23:09,569 --> 00:23:15,369 vale, entonces este método 559 00:23:15,369 --> 00:23:17,789 me sigue haciendo lo que me tiene que hacer 560 00:23:17,789 --> 00:23:19,730 que es lo que importa, lo que importa 561 00:23:19,730 --> 00:23:21,750 es que me incremente la cantidad en el 562 00:23:21,750 --> 00:23:23,009 objeto cuenta, eso es lo que importa 563 00:23:23,009 --> 00:23:25,589 pero además me da el valor como información 564 00:23:25,589 --> 00:23:27,529 por si yo lo que pone un mensaje o lo que sea 565 00:23:27,529 --> 00:23:29,450 además me lo da como información 566 00:23:29,450 --> 00:23:31,210 bueno, pues podemos hacer esta variante 567 00:23:31,210 --> 00:23:33,710 pero si yo no quiero este return 568 00:23:33,710 --> 00:23:35,329 que en realidad no me vale para nada 569 00:23:35,329 --> 00:23:37,730 porque el método lo que cuenta, lo que importa 570 00:23:37,730 --> 00:23:39,630 es que me suba la cantidad de mi cuenta 571 00:23:39,630 --> 00:23:41,730 el único que importa es que me suba la cantidad de la cuenta 572 00:23:41,730 --> 00:23:43,630 no que luego me informe de ella 573 00:23:43,630 --> 00:23:44,630 y me la dé como retorno 574 00:23:44,630 --> 00:23:47,809 entonces si yo no quiero hacer este retun no pasa nada 575 00:23:47,809 --> 00:23:49,269 vale pero bueno 576 00:23:49,269 --> 00:23:51,549 vamos a dejarlo así 577 00:23:51,549 --> 00:23:59,990 no si tú no lo pasas a un siso 578 00:23:59,990 --> 00:24:00,230 no 579 00:24:00,230 --> 00:24:02,869 vale entonces ahora 580 00:24:02,869 --> 00:24:05,470 este método está claro y aquí ya queda 581 00:24:05,470 --> 00:24:06,710 encapsulado lo que hace 582 00:24:06,710 --> 00:24:08,890 y ahora ya la ventaja enorme 583 00:24:08,890 --> 00:24:10,890 es que cualquier programa 584 00:24:10,890 --> 00:24:12,650 que trabaja con cuentas 585 00:24:12,650 --> 00:24:15,450 llama a ingresar y el dinero se ingresa 586 00:24:15,450 --> 00:24:17,789 y ese que llama a ingresar 587 00:24:17,789 --> 00:24:19,529 no se preocupa ni le importa 588 00:24:19,529 --> 00:24:21,670 cómo lo hace y lo deja de hacer, le da exactamente 589 00:24:21,670 --> 00:24:23,630 igual, porque esa 590 00:24:23,630 --> 00:24:25,109 información está encapsulada aquí 591 00:24:25,109 --> 00:24:27,390 vale, pues ¿quién es el que va a llamar a ingresar? 592 00:24:27,509 --> 00:24:28,230 pues este aquí 593 00:24:28,230 --> 00:24:29,849 este aquí 594 00:24:29,849 --> 00:24:32,609 pedimos la cantidad 595 00:24:32,609 --> 00:24:37,529 esta cantidad en un caso real no la pediríamos 596 00:24:37,529 --> 00:24:39,630 repito, sino que se leería del sensor 597 00:24:39,630 --> 00:24:41,009 o de lo que fuera de billetes 598 00:24:41,009 --> 00:24:42,990 y ahora ya 599 00:24:42,990 --> 00:24:45,869 cuenta punto 600 00:24:45,869 --> 00:24:48,250 ingresar 601 00:24:48,250 --> 00:24:50,490 y ahora esa cantidad 602 00:24:50,490 --> 00:24:51,349 que hemos leído 603 00:24:51,349 --> 00:24:52,690 que vamos a leer 604 00:24:52,690 --> 00:24:59,500 vamos a llamar al método en primer lugar así 605 00:24:59,500 --> 00:25:02,380 pues ya está 606 00:25:02,380 --> 00:25:03,940 ahora esto está separado 607 00:25:03,940 --> 00:25:06,200 el main llama a ingresar 608 00:25:06,200 --> 00:25:09,160 ¿cómo está hecho el ingreso por dentro? 609 00:25:09,960 --> 00:25:10,740 le da lo mismo 610 00:25:10,740 --> 00:25:13,259 que llega un momento 611 00:25:13,259 --> 00:25:15,220 que cambia el software del cajero 612 00:25:15,220 --> 00:25:16,920 el ingreso necesita 613 00:25:16,920 --> 00:25:19,980 ya que además se verifique algo con la Policía Nacional, 614 00:25:20,180 --> 00:25:22,220 estás haciendo un ingreso en una cuenta que no puedes, 615 00:25:23,259 --> 00:25:26,240 el main no se toca, el main se queda tal cual. 616 00:25:26,559 --> 00:25:27,640 El que se tocaría es este. 617 00:25:28,480 --> 00:25:30,039 Entonces tú vendrías aquí y dirías, cuidado, 618 00:25:30,859 --> 00:25:33,539 pero esto ya sería un tema del cajero, no del que hace el usuario, 619 00:25:34,160 --> 00:25:37,359 no del que hace el programa principal. 620 00:25:37,799 --> 00:25:40,180 Entonces, uy, cuidado que me ha dicho que tengo que verificar 621 00:25:40,180 --> 00:25:42,859 por cada ingreso, tengo que verificar algo. 622 00:25:43,519 --> 00:25:45,880 Pues tú haces aquí la verificación, lo que sea, 623 00:25:45,880 --> 00:25:47,119 y se queda todo aquí encerrado 624 00:25:47,119 --> 00:25:49,480 el programa principal 625 00:25:49,480 --> 00:25:51,420 seguirá llamando a ingresar 626 00:25:51,420 --> 00:25:53,799 y ahí no hay que tocar nada, no hay que cambiar nada 627 00:25:53,799 --> 00:25:55,720 ¿vale? pues 628 00:25:55,720 --> 00:25:57,700 por esto es por lo que se hace 629 00:25:57,700 --> 00:25:59,920 programación orientada a objetos, entre otras cosas 630 00:25:59,920 --> 00:26:01,880 por esto, porque si no 631 00:26:01,880 --> 00:26:03,319 perdona, si no 632 00:26:03,319 --> 00:26:05,779 si yo pongo aquí el chorizo 633 00:26:05,779 --> 00:26:07,480 del ingreso, lo planto todo aquí 634 00:26:07,480 --> 00:26:09,740 si de repente me dicen, cuidado que 635 00:26:09,740 --> 00:26:11,819 cuando haces ingresos además tienes que hacer esto 636 00:26:11,819 --> 00:26:13,799 pues me tengo que ir al main, buscar 637 00:26:13,799 --> 00:26:15,640 en el case, empezar aquí a meterlo todo 638 00:26:15,640 --> 00:26:17,579 pues no, es mucho más complicado, sin embargo ahí 639 00:26:17,579 --> 00:26:19,720 tengo la clase cuenta, me voy directamente 640 00:26:19,720 --> 00:26:21,559 a cuenta, porque está ahí colocada, aquí tengo 641 00:26:21,559 --> 00:26:23,680 un main enorme y tengo que empezar a ver dónde está eso 642 00:26:23,680 --> 00:26:24,759 ¿vale? dime 643 00:26:24,759 --> 00:26:26,559 ¿y si en el método de ingresar 644 00:26:26,559 --> 00:26:29,079 haces lo de que te devuelvan la cantidad? 645 00:26:29,440 --> 00:26:31,680 claro, entonces, ahora mismo, tal y como 646 00:26:31,680 --> 00:26:32,380 yo lo he llamado 647 00:26:32,380 --> 00:26:35,640 tal y como yo lo he llamado, está bien 648 00:26:35,640 --> 00:26:37,619 llamado y el ingreso se hace 649 00:26:37,619 --> 00:26:39,519 lógicamente, pero 650 00:26:39,519 --> 00:26:41,259 me devuelve el nuevo valor 651 00:26:41,259 --> 00:26:43,180 que yo lo estoy tirando a la basura 652 00:26:43,180 --> 00:26:45,319 no pasa nada, pero lo tira a la basura 653 00:26:45,319 --> 00:26:47,140 porque lo que importa es que 654 00:26:47,140 --> 00:26:49,160 mi cuenta se ha quedado con el 655 00:26:49,160 --> 00:26:50,519 nuevo ingreso, eso es lo que cuenta 656 00:26:50,519 --> 00:26:53,160 pero que yo quiero usar ese valor para poner un 657 00:26:53,160 --> 00:26:55,440 mensaje de su nuevo saldo 658 00:26:55,440 --> 00:26:57,240 es no sé qué, pues estupendo 659 00:26:57,240 --> 00:26:59,220 pues estupendo 660 00:26:59,220 --> 00:27:00,539 porque entonces podríamos hacer 661 00:27:00,539 --> 00:27:07,660 esto de aquí, su nuevo 662 00:27:07,660 --> 00:27:09,079 saldo es 663 00:27:09,079 --> 00:27:11,440 y ahora le pasamos esto 664 00:27:11,440 --> 00:27:12,099 al SISO 665 00:27:12,099 --> 00:27:14,640 para que además de ejecutarlo 666 00:27:14,640 --> 00:27:16,539 lo muestre 667 00:27:16,539 --> 00:27:26,240 bueno, pues nada 668 00:27:26,240 --> 00:27:30,660 a ver si le pongo un espacio ahí 669 00:27:30,660 --> 00:27:32,400 ahora sí 670 00:27:32,400 --> 00:27:39,880 vale 671 00:27:39,880 --> 00:27:41,279 pues ahora 672 00:27:41,279 --> 00:27:43,380 ¿qué estoy haciendo? 673 00:27:43,880 --> 00:27:45,680 al método lo estoy llamando igualmente 674 00:27:45,680 --> 00:27:47,519 luego el ingreso se va a hacer sí o sí 675 00:27:47,519 --> 00:27:49,779 lo estoy llamando igualmente, el ingreso que es lo que importa 676 00:27:49,779 --> 00:27:51,960 se va a hacer, pero además 677 00:27:51,960 --> 00:27:53,980 el valor de retorno que me está entregando 678 00:27:53,980 --> 00:27:55,140 que es el nuevo saldo 679 00:27:55,140 --> 00:27:57,220 se lo estoy pasando yo al system out 680 00:27:57,220 --> 00:27:59,920 luego además el system out me va a mostrar 681 00:27:59,920 --> 00:28:02,740 la cantidad resultante que me ha devuelto 682 00:28:02,740 --> 00:28:03,359 esta llamada 683 00:28:03,359 --> 00:28:06,920 bueno, pues ya está, me muestra la información 684 00:28:06,920 --> 00:28:08,240 y ya está, no pasa nada, mejor 685 00:28:08,240 --> 00:28:10,279 lo que importa 686 00:28:10,279 --> 00:28:12,359 es que se ha llamado a ingresar 687 00:28:12,359 --> 00:28:14,880 me da igual que se haya llamado a ingresar dentro de un SISO 688 00:28:14,880 --> 00:28:16,099 o se haya llamado fuera 689 00:28:16,099 --> 00:28:18,519 me da igual, se ha llamado a ingresar 690 00:28:18,519 --> 00:28:20,700 y ese ingresar 691 00:28:20,700 --> 00:28:22,259 es el que ha ejecutado 692 00:28:22,259 --> 00:28:25,410 el incremento 693 00:28:25,410 --> 00:28:26,869 ¿vale? 694 00:28:30,640 --> 00:28:31,200 ¿está claro? 695 00:28:31,200 --> 00:28:49,079 Claro, si nosotros tuviéramos la otra versión, la versión en la que no devuelvo nada, imaginaos que aquí no devuelvo nada y no devuelvo la nueva cantidad, no la devuelvo. Pues porque no quiero devolverla. Hago el incremento y ya está y no lo devuelvo. 696 00:28:49,079 --> 00:28:51,140 Pues 697 00:28:51,140 --> 00:28:53,180 Si yo hago eso 698 00:28:53,180 --> 00:28:58,990 Si yo hago eso 699 00:28:58,990 --> 00:29:01,190 Esto habría dejado de tener sentido 700 00:29:01,190 --> 00:29:02,250 Lógicamente 701 00:29:02,250 --> 00:29:05,309 Porque ahora ya cuenta.ingresar 702 00:29:05,309 --> 00:29:07,089 Me hace el incremento 703 00:29:07,089 --> 00:29:08,410 Pero como no me devuelve nada 704 00:29:08,410 --> 00:29:10,369 El system out me dice 705 00:29:10,369 --> 00:29:11,910 Perdóname, tienes que pasar algo 706 00:29:11,910 --> 00:29:13,349 No me estás pasando nada 707 00:29:13,349 --> 00:29:14,950 Porque este devuelve un void 708 00:29:14,950 --> 00:29:16,089 Y el void es nada 709 00:29:16,089 --> 00:29:19,170 Entonces le estamos pasando nada al system out 710 00:29:19,170 --> 00:29:19,890 No se puede 711 00:29:19,890 --> 00:29:22,549 entonces él diría, perdona, tienes que pasarme algo 712 00:29:22,549 --> 00:29:24,109 y esto no devuelve nada 713 00:29:24,109 --> 00:29:25,069 ¿vale? 714 00:29:28,900 --> 00:29:31,240 pero con esta versión en la que devuelve un valor 715 00:29:31,240 --> 00:29:32,819 pues mira, nos encaja 716 00:29:32,819 --> 00:29:34,339 uy, que feo esto 717 00:29:34,339 --> 00:29:38,960 siempre 718 00:29:38,960 --> 00:29:40,779 es bueno en principio 719 00:29:40,779 --> 00:29:43,220 usar los 720 00:29:43,220 --> 00:29:44,640 si el valor de retorno 721 00:29:44,640 --> 00:29:47,259 no lo necesito, porque el método hace otras cosas 722 00:29:47,259 --> 00:29:49,059 pues ya que se me ha quedado ahí 723 00:29:49,059 --> 00:29:50,839 una posibilidad, usarlo 724 00:29:50,839 --> 00:29:54,119 para devolver cosas, que además informen al usuario. 725 00:29:54,500 --> 00:29:55,960 Por ejemplo, un boolean, true, 726 00:29:56,420 --> 00:29:58,700 si se pudo hacer el ingreso o false, si no. 727 00:29:59,480 --> 00:30:01,200 Para dejarlo desocupado, 728 00:30:01,819 --> 00:30:03,480 pues usémoslo para devolver cosas 729 00:30:03,480 --> 00:30:05,200 que luego el usuario puede usar o no puede usar. 730 00:30:05,880 --> 00:30:07,539 Porque que yo aquí ponga aquí un double 731 00:30:07,539 --> 00:30:09,500 y luego lo devuelva, 732 00:30:10,099 --> 00:30:14,299 no significa que luego aquí tenga que usarlo obligatoriamente. 733 00:30:14,299 --> 00:30:15,740 Puedo llamar a cuenta e ingresar o no, 734 00:30:16,079 --> 00:30:17,720 pero al menos le doy esa posibilidad 735 00:30:17,720 --> 00:30:19,539 al programa que me llama para usarlo. 736 00:30:19,539 --> 00:30:21,420 entonces siempre es buena idea 737 00:30:21,420 --> 00:30:23,480 ya que está de sobras 738 00:30:23,480 --> 00:30:25,680 este valor, pues mira 739 00:30:25,680 --> 00:30:27,599 usarlo para algo y si el usuario quiere 740 00:30:27,599 --> 00:30:29,920 pero claro, todo eso yo tendría que dejarlo muy bien 741 00:30:29,920 --> 00:30:30,579 documentado 742 00:30:30,579 --> 00:30:33,759 todavía no habéis empezado lógicamente con las dos horas 743 00:30:33,759 --> 00:30:35,819 que tenéis dentro de los de desarrollo, documentación 744 00:30:35,819 --> 00:30:37,019 en javadoc y nada de eso 745 00:30:37,019 --> 00:30:39,200 vale 746 00:30:39,200 --> 00:30:40,720 es 747 00:30:40,720 --> 00:30:43,079 bueno, es que claro, tenéis poco tiempo 748 00:30:43,079 --> 00:30:45,539 pero dejamos un segundín que termine 749 00:30:45,539 --> 00:30:47,460 claro, cuando uno hace un método 750 00:30:47,460 --> 00:30:49,220 lo ideal 751 00:30:49,220 --> 00:30:51,799 es que comente bien 752 00:30:51,799 --> 00:30:53,799 lo que hace 753 00:30:53,799 --> 00:30:54,900 que dé explicaciones 754 00:30:54,900 --> 00:30:56,740 de lo que sirve cada parámetro 755 00:30:56,740 --> 00:30:58,940 lo que devuelve, qué significa 756 00:30:58,940 --> 00:31:01,599 eso es fundamental, que lo documente bien 757 00:31:01,599 --> 00:31:02,259 porque luego 758 00:31:02,259 --> 00:31:05,059 el desarrollador que va a usar el método 759 00:31:05,059 --> 00:31:06,900 no se quiere meter aquí 760 00:31:06,900 --> 00:31:09,019 a ver qué hace y qué es cada cosa 761 00:31:09,019 --> 00:31:11,160 lo que quiere es ver la documentación 762 00:31:11,160 --> 00:31:13,700 y decir, ah vale, este método me interesa 763 00:31:13,700 --> 00:31:14,960 hace justo lo que quiero 764 00:31:14,960 --> 00:31:17,900 pues entonces lo uso 765 00:31:17,900 --> 00:31:19,039 y no se va a meter aquí 766 00:31:19,039 --> 00:31:19,720 a ver esto 767 00:31:19,720 --> 00:31:23,019 entonces, muy rapidísimo 768 00:31:23,019 --> 00:31:25,119 esto lo veréis en más detalle si os 769 00:31:25,119 --> 00:31:27,180 da tiempo en entornos de desarrollo 770 00:31:27,180 --> 00:31:29,579 vosotros ya sabéis 771 00:31:29,579 --> 00:31:31,140 y ahora Mario no me ha olvidado, me pregunta 772 00:31:31,140 --> 00:31:33,039 lo que me vas a preguntar, ya sabéis que 773 00:31:33,039 --> 00:31:34,500 en general comentar es así 774 00:31:34,500 --> 00:31:37,079 o así si es un comentario 775 00:31:37,079 --> 00:31:39,440 multilínea 776 00:31:39,440 --> 00:31:41,279 lo que sea, bueno, uno puede comentar 777 00:31:41,279 --> 00:31:43,279 y en cualquier momento, porque hay comentarios, se acabó 778 00:31:43,279 --> 00:31:45,480 pero hay unos comentarios especiales 779 00:31:45,480 --> 00:31:47,440 que son para documentar 780 00:31:47,440 --> 00:31:48,359 código, porque 781 00:31:48,359 --> 00:31:51,519 que son comentarios que sirven de entrada a aplicaciones 782 00:31:51,519 --> 00:31:55,000 que luego, como la de Javadoc, que generan unos HTML estupendos. 783 00:31:55,099 --> 00:31:56,640 Eso es lo que se supone que veis en entornos de desarrollo. 784 00:31:57,240 --> 00:32:02,019 Entonces, esos comentarios siguen un formato especial, 785 00:32:02,200 --> 00:32:05,299 que son la barra, dos asteriscos en lugar de uno, 786 00:32:05,900 --> 00:32:08,019 dos asteriscos, y si le dais al Enter, 787 00:32:08,980 --> 00:32:10,599 ya os aparece esto directamente 788 00:32:10,599 --> 00:32:14,579 antes del método donde lo estáis haciendo. 789 00:32:14,900 --> 00:32:17,119 Y aquí es buena idea explicar, porque aquí dices, 790 00:32:17,119 --> 00:32:25,539 para cantidad que es cantidad la cantidad a ingresar retún que me estás devolviendo retún 791 00:32:25,539 --> 00:32:44,500 pues devuelvo la cantidad el saldo actualizado y aquí se explicaría este método e ingresa una 792 00:32:44,500 --> 00:32:46,519 cantidad y ahí uno cuenta 793 00:32:46,519 --> 00:32:47,920 su rollo, ¿vale? 794 00:32:48,680 --> 00:32:50,200 Entonces esta documentación de aquí 795 00:32:50,200 --> 00:32:51,880 es magnífica 796 00:32:51,880 --> 00:32:54,900 porque ahora ya, ¿qué es lo que ocurre? 797 00:32:58,079 --> 00:32:59,319 ¿Vale? Fijaos 798 00:32:59,319 --> 00:33:00,859 en cuanto yo he puesto 799 00:33:00,859 --> 00:33:03,140 mi cursor en ingresar, ¿qué me ha salido? 800 00:33:03,619 --> 00:33:04,720 Toda la explicación. 801 00:33:05,500 --> 00:33:07,119 Este método ingresa una cantidad. 802 00:33:07,420 --> 00:33:08,980 Cantidad es la cantidad que ingresar. 803 00:33:09,039 --> 00:33:10,440 Me devuelve el saldo actualizado. 804 00:33:11,299 --> 00:33:12,799 Entonces el que está desarrollando 805 00:33:12,799 --> 00:33:14,799 y llama a este método 806 00:33:14,799 --> 00:33:17,359 pum, le aparecen todas 807 00:33:17,359 --> 00:33:19,059 las explicaciones que yo estoy dando 808 00:33:19,059 --> 00:33:21,500 entonces es buena idea 809 00:33:21,500 --> 00:33:22,980 no es que sea buena idea, es 810 00:33:22,980 --> 00:33:25,500 crucial cuando uno desarrolla 811 00:33:25,500 --> 00:33:26,019 clases 812 00:33:26,019 --> 00:33:29,440 los métodos de esas clases documentarlos 813 00:33:29,440 --> 00:33:31,599 de esta manera, porque los que nos usen 814 00:33:31,599 --> 00:33:33,599 no se van a meter en nuestro código 815 00:33:33,599 --> 00:33:35,599 a averiguar lo que hace, van a esperar 816 00:33:35,599 --> 00:33:36,680 que se lo expliquemos 817 00:33:36,680 --> 00:33:39,380 pues se explica con ese tipo de comentarios 818 00:33:39,380 --> 00:33:41,539 ¿vale? 819 00:33:42,099 --> 00:33:43,420 nosotros no vamos a hacer cada 820 00:33:43,420 --> 00:33:45,579 método que hagamos, no vamos a estarlo documentando 821 00:33:45,579 --> 00:33:47,059 porque es un rollo, pero bueno 822 00:33:47,059 --> 00:33:49,359 que conozcáis esto 823 00:33:49,359 --> 00:33:51,640 vale, esto 824 00:33:51,640 --> 00:33:53,480 venía en relación a la pregunta de si es bueno 825 00:33:53,480 --> 00:33:55,319 que devuelva o no devuelva, pues 826 00:33:55,319 --> 00:33:57,519 depende de la situación en la que estés 827 00:33:57,519 --> 00:33:59,599 y si lo tienes 828 00:33:59,599 --> 00:34:00,980 inutilizado, mejor usarlo 829 00:34:00,980 --> 00:34:03,440 pero siempre documenta 830 00:34:03,440 --> 00:34:05,500 para que quien lo usa sepa eso que estás 831 00:34:05,500 --> 00:34:07,519 devolviendo que es, y sepa si le 832 00:34:07,519 --> 00:34:09,239 interesa usarlo, no le interesa usarlo, etc 833 00:34:09,239 --> 00:34:10,980 vale 834 00:34:10,980 --> 00:34:14,440 Vale, pues ingresar ya habría acabado. 835 00:34:15,280 --> 00:34:17,420 Cantidad, su nuevo saldo es esto y se acabó. 836 00:34:19,349 --> 00:34:22,710 Ahora, ¿qué es lo siguiente que puede hacer alguien en el cajero? 837 00:34:23,570 --> 00:34:24,329 Sacar dinero. 838 00:34:25,090 --> 00:34:30,030 Vale, pues sacar dinero, de nuevo, no tiene sentido que hagamos aquí todo el código para sacar dinero, 839 00:34:30,389 --> 00:34:32,269 si te has quedado a cero, patatín, patatán. 840 00:34:33,110 --> 00:34:37,510 Vamos a hacerlo, como es algo que se hace con los objetos cuenta, vamos a hacerlo aquí. 841 00:34:37,510 --> 00:34:39,809 y el método sacar dinero 842 00:34:39,809 --> 00:34:40,789 nos dicen aquí que 843 00:34:40,789 --> 00:34:43,550 retira una cantidad, pero si 844 00:34:43,550 --> 00:34:45,929 restando se queda negativa 845 00:34:45,929 --> 00:34:48,090 no dejes el saldo en negativo, déjalo en cero 846 00:34:48,090 --> 00:34:49,849 vale 847 00:34:49,849 --> 00:34:50,730 pues hala 848 00:34:50,730 --> 00:34:57,840 en principio este lo mismo 849 00:34:57,840 --> 00:34:59,659 en principio no devolvería nada 850 00:34:59,659 --> 00:35:01,780 porque 851 00:35:01,780 --> 00:35:04,380 su efecto se queda en la cantidad 852 00:35:04,380 --> 00:35:05,980 del objeto, se queda aquí 853 00:35:05,980 --> 00:35:07,900 luego no tiene por qué devolver nada 854 00:35:07,900 --> 00:35:12,550 y aquí que se retira 855 00:35:12,550 --> 00:35:14,150 pues se retira una cantidad 856 00:35:14,150 --> 00:35:20,940 Y ahora, ¿cuál es el problema? 857 00:35:21,260 --> 00:35:24,360 Pues lo que se actualiza es esta cantidad de aquí 858 00:35:24,360 --> 00:35:26,079 Esta es la que se actualiza 859 00:35:26,079 --> 00:35:28,460 ¿Y qué se le da? 860 00:35:28,699 --> 00:35:33,000 Depende, la resta de la cantidad original menos esta 861 00:35:33,000 --> 00:35:35,980 Si es mayor que cero o si no cero 862 00:35:35,980 --> 00:35:38,539 Luego esto es un ternario, entonces 863 00:35:38,539 --> 00:35:40,519 Un ternario que depende 864 00:35:40,519 --> 00:35:44,900 Si dispunto cantidad menos la que voy a restar 865 00:35:44,900 --> 00:35:46,440 menos cantidad 866 00:35:46,440 --> 00:35:49,559 esto es mayor que cero 867 00:35:49,559 --> 00:35:53,159 si es mayor que cero, estupendo 868 00:35:53,159 --> 00:35:54,679 entonces la nueva cantidad 869 00:35:54,679 --> 00:35:56,840 la actualizo a 870 00:35:56,840 --> 00:35:58,280 descantidad menos cantidad 871 00:35:58,280 --> 00:36:00,139 ¿vale? muy bien 872 00:36:00,139 --> 00:36:02,739 y si no 873 00:36:02,739 --> 00:36:04,820 si no es mayor que cero 874 00:36:04,820 --> 00:36:06,539 o es negativa, pues a cero 875 00:36:06,539 --> 00:36:09,000 ¿vale? es lo que me dice el método 876 00:36:09,000 --> 00:36:12,780 si el resultado de la retirada 877 00:36:12,780 --> 00:36:14,900 es positivo, pues quédate con ese 878 00:36:14,900 --> 00:36:16,880 resultado, si 879 00:36:16,880 --> 00:36:18,880 es negativo, da 880 00:36:18,880 --> 00:36:24,699 cero, y aquí también 881 00:36:24,699 --> 00:36:26,619 podríamos decir, oye, este valor 882 00:36:26,619 --> 00:36:28,880 de retorno, voy 883 00:36:28,880 --> 00:36:30,960 vale, ya que está sin usar 884 00:36:30,960 --> 00:36:32,800 ya que está sin usar, voy 885 00:36:32,800 --> 00:36:34,539 a usarlo para meter en esa caja 886 00:36:34,539 --> 00:36:36,860 yo te doy una caja con el saldo actualizado 887 00:36:36,860 --> 00:36:38,820 si quieres lo usas 888 00:36:38,820 --> 00:36:40,820 y si no, no, me da igual 889 00:36:40,820 --> 00:36:42,500 porque el resultado está hecho 890 00:36:42,500 --> 00:36:44,559 el resultado está hecho, que es cambiar esta 891 00:36:44,559 --> 00:36:46,219 propiedad, el resultado está hecho 892 00:36:46,219 --> 00:36:49,199 Venga, pues ya que hemos seguido ese criterio 893 00:36:49,199 --> 00:36:50,179 En el anterior, vamos a seguir 894 00:36:50,179 --> 00:36:52,420 Vamos a seguirlo en este 895 00:36:52,420 --> 00:36:55,139 Ya que hemos usado ese criterio, vamos a seguirlo aquí 896 00:36:55,139 --> 00:36:58,679 Vamos a seguirlo aquí 897 00:36:58,679 --> 00:37:00,159 Y ya de paso 898 00:37:00,159 --> 00:37:14,000 Ya de paso lo devolvemos 899 00:37:14,000 --> 00:37:16,000 Para que el usuario lo verifique o lo que sea 900 00:37:16,000 --> 00:37:17,260 Mario, te iba a preguntar algo 901 00:37:17,260 --> 00:37:24,539 Para dis es para referirte 902 00:37:24,539 --> 00:37:26,300 El objeto en el que estoy 903 00:37:26,300 --> 00:37:28,679 Con lo cual cantidad sería 904 00:37:28,679 --> 00:37:30,679 La propiedad cantidad del objeto 905 00:37:30,679 --> 00:37:31,519 Esta 906 00:37:31,519 --> 00:37:34,159 Si yo no pongo aquí el dis 907 00:37:34,159 --> 00:37:35,659 si no lo pongo 908 00:37:35,659 --> 00:37:38,219 entonces se interpreta 909 00:37:38,219 --> 00:37:39,460 que es este parámetro 910 00:37:39,460 --> 00:37:41,960 porque el problema es que se llaman igual 911 00:37:41,960 --> 00:37:50,809 el parámetro 912 00:37:50,809 --> 00:37:55,139 pues entonces 913 00:37:55,139 --> 00:37:57,260 tienes una ambigüedad que tienes que resolver 914 00:37:57,260 --> 00:37:58,800 obligatoriamente con el dis 915 00:37:58,800 --> 00:38:03,280 dis se refiere a la propiedad 916 00:38:03,280 --> 00:38:04,559 y no dis 917 00:38:04,559 --> 00:38:07,400 no poner nada se refiere a este 918 00:38:07,400 --> 00:38:11,000 ¿vale? con lo cual aquí 919 00:38:11,000 --> 00:38:13,380 hay que ponerlo, no hay alternativa 920 00:38:13,380 --> 00:38:15,280 si no lo ponemos, este método 921 00:38:15,280 --> 00:38:16,619 no estaría haciendo lo que hay que hacer 922 00:38:16,619 --> 00:38:19,019 porque estaría 923 00:38:19,019 --> 00:38:21,079 si yo no pongo el dis, estaría 924 00:38:21,079 --> 00:38:23,480 a este mismo parámetro sumarle el mismo 925 00:38:23,480 --> 00:38:24,739 no es eso lo que queremos 926 00:38:24,739 --> 00:38:26,480 queremos al de arriba 927 00:38:26,480 --> 00:38:29,599 ¿vale? con lo cual aquí hay que poner dis obligatorio 928 00:38:29,599 --> 00:38:30,599 no tenemos elección 929 00:38:30,599 --> 00:38:31,659 ¿vale? 930 00:38:32,940 --> 00:38:35,159 cuando no hay ambigüedad y el parámetro 931 00:38:35,159 --> 00:38:36,059 no se llama igual 932 00:38:36,059 --> 00:38:39,199 no hace falta que pongas el dis porque ahí no hay alternativa 933 00:38:39,199 --> 00:38:40,840 te vas a referir siempre al de arriba 934 00:38:40,840 --> 00:38:41,840 vale 935 00:38:41,840 --> 00:38:45,320 vale, venga, pues paramos entonces 936 00:38:45,320 --> 00:38:47,000 por lo que veo