1 00:00:00,000 --> 00:00:07,000 Bueno, pues vamos a hacer entonces un pequeño repasito, ¿vale?, para situarnos. 2 00:00:07,000 --> 00:00:18,000 Recordad que estábamos ya metiéndonos, silencio, 3 00:00:18,000 --> 00:00:24,000 con la estructura de los programas que son, silencio. 4 00:00:24,000 --> 00:00:31,000 Andrés, recordad que estábamos ya en el tema de clases de objetos, 5 00:00:31,000 --> 00:00:41,000 en el cual estábamos viendo la estructura que tienen los programas orientados a objetos, ¿vale? 6 00:00:41,000 --> 00:00:46,000 Entonces, lo que vimos en el primer tema era la programación estructurada, 7 00:00:46,000 --> 00:00:52,000 que es cómo construir algoritmos que resuelvan problemas concretos, 8 00:00:52,000 --> 00:00:56,000 pues el factorial de un número, da dos, tres números, da no sé qué, 9 00:00:56,000 --> 00:01:02,000 pues dadas siete cadenas, ver cuántas cadenas tienen siete vocales. 10 00:01:02,000 --> 00:01:06,000 Bueno, pues vimos cómo, mediante las sentencias de programación estructurada, 11 00:01:06,000 --> 00:01:12,000 que son la asignación a variables, las decisiones y los bucles, 12 00:01:12,000 --> 00:01:15,000 cómo construir algoritmos para resolver esos problemas. 13 00:01:15,000 --> 00:01:19,000 Y eso, ¿a qué nos llevaba? 14 00:01:19,000 --> 00:01:23,000 A una serie de sentencias una tras otra, y ya está, punto, pelota. 15 00:01:23,000 --> 00:01:28,000 Una serie de sentencias una tras otra, pa, pa, pa, pa, pa, pa, pa, pa, pa, pa, pa, pa, pa, pa, pa, 16 00:01:28,000 --> 00:01:32,000 para construir ese algoritmo que resolvía nuestro problema. 17 00:01:32,000 --> 00:01:38,000 Bueno, entonces, lo que dijimos es, vale, si tenemos que programar así todo, 18 00:01:38,000 --> 00:01:43,000 pues entonces una cosa complicada pueden ser diez mil líneas, 19 00:01:43,000 --> 00:01:46,000 porque nuestros programas estructurados son una línea tras otra, 20 00:01:46,000 --> 00:01:48,000 eso está claro, una línea tras otra. 21 00:01:48,000 --> 00:01:51,000 Entonces, si la aplicación es gorda y hace muchas cosas, 22 00:01:51,000 --> 00:01:55,000 pues esa línea tras otra pueden ser doscientas mil líneas. 23 00:01:55,000 --> 00:01:58,000 ¿Eso es manejable? No, eso no es manejable. 24 00:01:58,000 --> 00:02:00,000 ¿Eso es actualizable? 25 00:02:00,000 --> 00:02:03,000 Si tengo yo que cambiar alguna cosita de la aplicación, no es actualizable. 26 00:02:03,000 --> 00:02:05,000 ¿Qué hago yo con doscientas mil líneas? 27 00:02:05,000 --> 00:02:08,000 ¿Eso es reutilizable? No es reutilizable. 28 00:02:08,000 --> 00:02:10,000 ¿Cómo reutilizo yo doscientas mil líneas? 29 00:02:10,000 --> 00:02:11,000 No es nada de eso. 30 00:02:11,000 --> 00:02:15,000 Conclusión, esos programas de doscientas mil líneas una tras otra, 31 00:02:15,000 --> 00:02:17,000 las programaciones estructuradas no tienen futuro. 32 00:02:17,000 --> 00:02:21,000 Conclusión, vamos a organizar ese código, 33 00:02:21,000 --> 00:02:24,000 ese código vamos a organizarlo de otra manera, 34 00:02:24,000 --> 00:02:26,000 vamos a organizarlo de otra manera. 35 00:02:26,000 --> 00:02:30,000 Y ahí llegó la programación orientada a objetos. 36 00:02:30,000 --> 00:02:33,000 Y en eso estábamos, en este tema, 37 00:02:33,000 --> 00:02:38,000 de cómo construir programas siguiendo esa forma de programar. 38 00:02:39,000 --> 00:02:40,000 ¿Vale? 39 00:02:40,000 --> 00:02:45,000 Entonces, para construir programas siguiendo esa forma de programar, 40 00:02:45,000 --> 00:02:52,000 ahora es necesario incorporar otra forma de verlo. 41 00:02:52,000 --> 00:02:58,000 Hasta ahora nosotros orientábamos la solución de nuestros problemas 42 00:02:58,000 --> 00:03:00,000 a una secuencia de acciones. 43 00:03:00,000 --> 00:03:03,000 Ahora hace esto, ahora hace esto, ahora hace esto, ahora hace esto. 44 00:03:03,000 --> 00:03:05,000 Esa es la programación estructurada, ¿no? 45 00:03:05,000 --> 00:03:06,000 Una secuencia de órdenes. 46 00:03:06,000 --> 00:03:09,000 Hace esto, hace esto, hace esto, hace esto. 47 00:03:09,000 --> 00:03:12,000 Es decir, nuestros programas están orientados a la acción. 48 00:03:12,000 --> 00:03:15,000 Hace esta cosa, ahora hace esta cosa, ahora hace esta cosa. 49 00:03:15,000 --> 00:03:16,000 ¿Vale? 50 00:03:16,000 --> 00:03:18,000 Pues cuando saltamos a la programación orientada a objetos, 51 00:03:18,000 --> 00:03:21,000 ahora hay que incorporar otra perspectiva. 52 00:03:21,000 --> 00:03:23,000 Y es que nuestros programas no van a estar orientados 53 00:03:23,000 --> 00:03:26,000 solo a la acción, hace esto, hace esto, hace esto, 54 00:03:26,000 --> 00:03:30,000 sino también orientados a la descripción de, 55 00:03:30,000 --> 00:03:32,000 vale, hace esto, pero ¿con qué? 56 00:03:32,000 --> 00:03:34,000 ¿Con qué lo vas a hacer? 57 00:03:34,000 --> 00:03:35,000 ¿Con alumnos? 58 00:03:35,000 --> 00:03:36,000 ¿Con matrículas? 59 00:03:36,000 --> 00:03:37,000 ¿Con facturas? 60 00:03:37,000 --> 00:03:39,000 Entonces, la programación orientada a objetos implica ahora 61 00:03:39,000 --> 00:03:41,000 incorporar esa otra cosa. 62 00:03:41,000 --> 00:03:44,000 Incorporar, vale, voy a hacer una aplicación. 63 00:03:44,000 --> 00:03:47,000 Mi aplicación no va a ser solo una secuencia de órdenes, 64 00:03:47,000 --> 00:03:49,000 como era en el tema 1. 65 00:03:49,000 --> 00:03:51,000 No va a ser solo una secuencia de órdenes. 66 00:03:51,000 --> 00:03:54,000 También me incorporo a una descripción 67 00:03:54,000 --> 00:03:58,000 de la realidad con la que van a trabajar esas órdenes. 68 00:03:58,000 --> 00:04:01,000 Bueno, pues esa nueva perspectiva llega con la programación orientada a objetos. 69 00:04:01,000 --> 00:04:03,000 Entonces, antes de empezar a programar, 70 00:04:03,000 --> 00:04:04,000 antes de empezar a programar, 71 00:04:04,000 --> 00:04:06,000 uno tiene que hacer un análisis en el que dice, 72 00:04:06,000 --> 00:04:08,000 muy bien, esta aplicación que yo voy a hacer, 73 00:04:08,000 --> 00:04:11,000 esta aplicación, ¿con qué trabaja? 74 00:04:11,000 --> 00:04:14,000 ¿Trabaja con empleados? 75 00:04:14,000 --> 00:04:16,000 ¿Trabaja con muebles? 76 00:04:16,000 --> 00:04:18,000 Porque es una empresa de muebles. 77 00:04:18,000 --> 00:04:19,000 ¿Trabaja con facturas? 78 00:04:19,000 --> 00:04:20,000 ¿Trabaja con clientes? 79 00:04:20,000 --> 00:04:22,000 ¿Con qué trabaja? 80 00:04:22,000 --> 00:04:25,000 Eso hay que pensarlo antes de empezar a programar. 81 00:04:25,000 --> 00:04:26,000 ¿Vale? 82 00:04:26,000 --> 00:04:28,000 Porque todas las aplicaciones trabajan con cosas, 83 00:04:28,000 --> 00:04:30,000 porque sirven para cosas, ¿no? 84 00:04:30,000 --> 00:04:31,000 Bueno, pues entonces, 85 00:04:31,000 --> 00:04:33,000 cuando uno ha hecho ese primer análisis, 86 00:04:33,000 --> 00:04:35,000 llega a la conclusión de que hay unas cosas 87 00:04:35,000 --> 00:04:38,000 que llamábamos entidades, ¿verdad? 88 00:04:38,000 --> 00:04:43,000 Unas cosas que llamábamos entidades, 89 00:04:43,000 --> 00:04:46,000 que son las cosas con las que mi aplicación trabaja, 90 00:04:46,000 --> 00:04:48,000 las que va a gestionar, 91 00:04:48,000 --> 00:04:50,000 las que va a manejar, ¿vale? 92 00:04:50,000 --> 00:04:52,000 Las que va a manejar. 93 00:04:52,000 --> 00:04:55,000 Bueno, nosotros hicimos nuestro ejemplo 94 00:04:55,000 --> 00:04:58,000 con una aplicación que trabajaba con clientes 95 00:04:58,000 --> 00:05:01,000 y trabajaba con pedidos. 96 00:05:01,000 --> 00:05:04,000 Habíamos identificado dos entidades 97 00:05:04,000 --> 00:05:05,000 en esa aplicación de ejemplo, 98 00:05:05,000 --> 00:05:06,000 habíamos identificado dos. 99 00:05:06,000 --> 00:05:09,000 Mi aplicación va a gestionar clientes y pedidos. 100 00:05:09,000 --> 00:05:11,000 Vale, y todo eso, todo eso, 101 00:05:11,000 --> 00:05:13,000 es antes de empezar a programar, 102 00:05:13,000 --> 00:05:16,000 antes de empezar a tirar líneas de código. 103 00:05:16,000 --> 00:05:17,000 ¿Vale? 104 00:05:17,000 --> 00:05:19,000 Primero hay que describir la realidad 105 00:05:19,000 --> 00:05:21,000 con la que mi aplicación va a trabajar. 106 00:05:21,000 --> 00:05:23,000 Bueno, cuando ya tenemos descrita 107 00:05:23,000 --> 00:05:24,000 y ya tenemos, 108 00:05:24,000 --> 00:05:26,000 va a trabajar con clientes, con pedidos, 109 00:05:27,000 --> 00:05:30,000 ya podemos empezar a pensar en programar. 110 00:05:30,000 --> 00:05:31,000 ¿Vale? 111 00:05:31,000 --> 00:05:34,000 Y ahora queda lo primero que programamos. 112 00:05:34,000 --> 00:05:36,000 Pues cada entidad, 113 00:05:36,000 --> 00:05:38,000 cada entidad, 114 00:05:38,000 --> 00:05:40,000 se convertía en una clase. 115 00:05:40,000 --> 00:05:41,000 ¿Verdad? 116 00:05:41,000 --> 00:05:45,000 Cada entidad se convertía en una clase. 117 00:05:45,000 --> 00:05:48,000 Ahora esto ya sí es hacer código. 118 00:05:48,000 --> 00:05:50,000 Esto ya sí es hacer código. 119 00:05:50,000 --> 00:05:52,000 Cada entidad se convertía en una clase. 120 00:05:52,000 --> 00:05:54,000 Y vimos cómo se programaba una clase. 121 00:05:54,000 --> 00:05:56,000 Pues la palabra reservada a clase, 122 00:05:56,000 --> 00:06:00,000 el nombre de la entidad, 123 00:06:00,000 --> 00:06:05,000 recomendablemente empezando en mayúscula, 124 00:06:05,000 --> 00:06:11,000 para seguir un estilo de código homogéneo para todos, 125 00:06:11,000 --> 00:06:12,000 universal, 126 00:06:12,000 --> 00:06:13,000 que facilite, 127 00:06:13,000 --> 00:06:15,000 que otros entiendan microgramas, 128 00:06:15,000 --> 00:06:16,000 que lo facilite, 129 00:06:16,000 --> 00:06:17,000 empezando con mayúscula. 130 00:06:17,000 --> 00:06:20,000 Y luego ya aquí dijimos dos partes. 131 00:06:20,000 --> 00:06:22,000 Dentro de la clase 132 00:06:22,000 --> 00:06:25,000 tenemos dos partes. 133 00:06:25,000 --> 00:06:28,000 La primera parte, ¿cómo la llamábamos? 134 00:06:28,000 --> 00:06:31,000 Que alguien me lo diga. 135 00:06:31,000 --> 00:06:32,000 Propiedades. 136 00:06:32,000 --> 00:06:37,000 ¿Vale? 137 00:06:37,000 --> 00:06:39,000 Y la segunda parte. 138 00:06:39,000 --> 00:06:45,000 Métodos. 139 00:06:45,000 --> 00:06:46,000 Vale. 140 00:06:46,000 --> 00:06:48,000 En la parte de propiedades 141 00:06:48,000 --> 00:06:54,000 nos tocaba decidir 142 00:06:54,000 --> 00:06:56,000 todas aquellas características 143 00:06:56,000 --> 00:06:59,000 que nos interesaban, 144 00:06:59,000 --> 00:07:01,000 que caracterizasen al cliente. 145 00:07:01,000 --> 00:07:03,000 Las que le interesan a la aplicación, 146 00:07:03,000 --> 00:07:04,000 lógicamente. 147 00:07:04,000 --> 00:07:06,000 Si a la aplicación le va a interesar el NIF, 148 00:07:06,000 --> 00:07:08,000 el nombre, 149 00:07:08,000 --> 00:07:11,000 pues una propiedad por cada característica 150 00:07:11,000 --> 00:07:13,000 que nos interese caracterizar. 151 00:07:13,000 --> 00:07:15,000 ¿Cómo declarábamos esas propiedades? 152 00:07:15,000 --> 00:07:17,000 Una vez identificadas. 153 00:07:17,000 --> 00:07:18,000 Declarábamos exactamente igual 154 00:07:18,000 --> 00:07:20,000 que se declara cualquier variable. 155 00:07:20,000 --> 00:07:22,000 Ya hemos aprendido a declarar variables. 156 00:07:22,000 --> 00:07:28,000 Ya hemos aprendido los tipos de datos primitivos. 157 00:07:28,000 --> 00:07:33,000 Byte, short, int, long, double, float, char y boolean. 158 00:07:33,000 --> 00:07:34,000 Esos primitivos. 159 00:07:34,000 --> 00:07:37,000 Y luego tipos de datos objetos. 160 00:07:37,000 --> 00:07:38,000 O sea, variables que son objeto, 161 00:07:38,000 --> 00:07:40,000 como string, por ejemplo. 162 00:07:40,000 --> 00:07:41,000 Ya hemos aprendido a declarar variables 163 00:07:41,000 --> 00:07:43,000 de esos tipos, ¿no? 164 00:07:43,000 --> 00:07:45,000 Pues las propiedades son variables. 165 00:07:45,000 --> 00:07:47,000 Se declaran como se declaran las variables. 166 00:07:47,000 --> 00:07:50,000 String, NIF, string, nombre, las que yo quiera. 167 00:07:50,000 --> 00:07:52,000 Así se declaran. 168 00:07:52,000 --> 00:07:53,000 ¿Vale? 169 00:07:53,000 --> 00:07:56,000 Entonces, 170 00:07:56,000 --> 00:07:58,000 la clase, 171 00:07:58,000 --> 00:08:00,000 y esto es lo más importante de entender, 172 00:08:00,000 --> 00:08:01,000 la clase, 173 00:08:01,000 --> 00:08:03,000 era la plantilla. 174 00:08:03,000 --> 00:08:04,000 La que me decía, 175 00:08:04,000 --> 00:08:06,000 cuando haya un cliente, 176 00:08:06,000 --> 00:08:08,000 o dos, o tres, o veintisiete clientes, 177 00:08:08,000 --> 00:08:11,000 cuando mi aplicación ya se esté ejecutando, 178 00:08:11,000 --> 00:08:13,000 ya esté en ejecución, 179 00:08:13,000 --> 00:08:16,000 porque ya existan clientes físicos que gestionar, 180 00:08:16,000 --> 00:08:18,000 cuando esté en ejecución, 181 00:08:18,000 --> 00:08:19,000 esos clientes físicos, 182 00:08:19,000 --> 00:08:21,000 uno, dos, tres o mil, 183 00:08:21,000 --> 00:08:23,000 tendrán estas propiedades. 184 00:08:23,000 --> 00:08:24,000 NIF, nombre, 185 00:08:24,000 --> 00:08:27,000 cada uno tendrá las suyas propias 186 00:08:27,000 --> 00:08:30,000 con sus propios valores. 187 00:08:30,000 --> 00:08:31,000 ¿Vale? 188 00:08:31,000 --> 00:08:37,000 Bueno, pues eso nos llevaba al concepto de objeto. 189 00:08:37,000 --> 00:08:39,000 Entonces, la clase 190 00:08:39,000 --> 00:08:41,000 es la plantilla que define 191 00:08:41,000 --> 00:08:43,000 qué características van a caracterizar 192 00:08:43,000 --> 00:08:47,000 a cada objeto cliente cuando exista. 193 00:08:47,000 --> 00:08:48,000 Y ahora ya, 194 00:08:48,000 --> 00:08:51,000 el objeto es un ejemplo concreto, 195 00:08:51,000 --> 00:08:54,000 un ejemplo concreto de esta clase. 196 00:08:54,000 --> 00:08:57,000 Luego, objetos de una clase puede haber 197 00:08:57,000 --> 00:08:59,000 doscientos mil trescientos cuarenta. 198 00:08:59,000 --> 00:09:00,000 ¿Vale? 199 00:09:00,000 --> 00:09:01,000 Clases solo hay una, 200 00:09:01,000 --> 00:09:03,000 porque es la plantilla. 201 00:09:03,000 --> 00:09:05,000 Objetos concretos o ejemplos concretos 202 00:09:05,000 --> 00:09:06,000 de esa clase, 203 00:09:06,000 --> 00:09:09,000 doscientos mil. 204 00:09:09,000 --> 00:09:14,000 A los objetos también se le llama instancias. 205 00:09:14,000 --> 00:09:16,000 Y por eso, 206 00:09:16,000 --> 00:09:18,000 crear un objeto de una clase 207 00:09:18,000 --> 00:09:21,000 se le suele llamar instanciar la clase. 208 00:09:21,000 --> 00:09:23,000 Instanciar la clase 209 00:09:23,000 --> 00:09:25,000 es crear un ejemplo concreto. 210 00:09:25,000 --> 00:09:26,000 Entonces, 211 00:09:26,000 --> 00:09:28,000 una clase se la puede instanciar 212 00:09:28,000 --> 00:09:30,000 veintisiete mil veces. 213 00:09:30,000 --> 00:09:33,000 Tantas como objetos quiera yo crear. 214 00:09:33,000 --> 00:09:34,000 ¿Vale? 215 00:09:34,000 --> 00:09:37,000 ¿Y en qué momento se instancia la clase? 216 00:09:37,000 --> 00:09:40,000 ¿O en qué momento se crean los objetos? 217 00:09:40,000 --> 00:09:43,000 Cuando yo ya tenga un programa principal 218 00:09:43,000 --> 00:09:46,000 que ya quiera ejecutar para hacer cosas concretas. 219 00:09:46,000 --> 00:09:49,000 Y eso será esa otra clase diferente, 220 00:09:49,000 --> 00:09:51,000 que era una clase especial, 221 00:09:51,000 --> 00:09:57,000 que era la clase main. 222 00:09:57,000 --> 00:09:58,000 ¿Vale? 223 00:09:58,000 --> 00:09:59,000 Entonces, 224 00:09:59,000 --> 00:10:01,000 dentro de mi aplicación orientada a objetos, 225 00:10:01,000 --> 00:10:03,000 que ahora ya van a ser muchas clases, 226 00:10:03,000 --> 00:10:05,000 pues tendré mis clases entidad. 227 00:10:05,000 --> 00:10:06,000 Mi clase cliente, 228 00:10:06,000 --> 00:10:07,000 mi clase pedido, 229 00:10:07,000 --> 00:10:08,000 las que yo necesite. 230 00:10:08,000 --> 00:10:11,000 Tantas como realidades diferentes maneje mi aplicación. 231 00:10:11,000 --> 00:10:13,000 Y además de esas clases, 232 00:10:13,000 --> 00:10:15,000 tendré otra, 233 00:10:15,000 --> 00:10:17,000 que es la principal. 234 00:10:17,000 --> 00:10:19,000 Que es un poquito especial, 235 00:10:19,000 --> 00:10:21,000 porque esa clase no está asociada 236 00:10:21,000 --> 00:10:22,000 a ninguna realidad, 237 00:10:22,000 --> 00:10:23,000 a ninguna entidad. 238 00:10:23,000 --> 00:10:25,000 Esa es la clase que se llama ejecutar, 239 00:10:25,000 --> 00:10:27,000 que es la que la máquina virtual ejecuta. 240 00:10:27,000 --> 00:10:28,000 Entonces, 241 00:10:28,000 --> 00:10:30,000 esa clase es otra clase más 242 00:10:30,000 --> 00:10:31,000 a la hora de programarla. 243 00:10:31,000 --> 00:10:33,000 Uno la programa con clases como todas 244 00:10:33,000 --> 00:10:35,000 y le da un nombre al que le dé la gana. 245 00:10:35,000 --> 00:10:37,000 Normalmente le damos el nombre 246 00:10:37,000 --> 00:10:39,000 de principal o main, 247 00:10:39,000 --> 00:10:42,000 porque tiene un significado especial esa clase, 248 00:10:42,000 --> 00:10:43,000 que es la ejecutable, 249 00:10:43,000 --> 00:10:45,000 entre comillas. 250 00:10:45,000 --> 00:10:47,000 Y esta clase especial 251 00:10:47,000 --> 00:10:49,000 es la que tiene aquí 252 00:10:49,000 --> 00:10:50,000 este metodito, 253 00:10:50,000 --> 00:10:51,000 que ya nos sabemos de memoria, 254 00:10:51,000 --> 00:10:52,000 la cabecera, 255 00:10:52,000 --> 00:10:54,000 que tiene que ser esta obligatoriamente, 256 00:10:54,000 --> 00:10:59,000 public, static, void, main, bla, bla, bla. 257 00:10:59,000 --> 00:11:02,000 Esto que nos sabemos de memoria. 258 00:11:03,000 --> 00:11:10,000 Y estas líneas de aquí, 259 00:11:10,000 --> 00:11:12,000 este ya es nuestro programa 260 00:11:12,000 --> 00:11:14,000 como lo entendemos del primer tema. 261 00:11:14,000 --> 00:11:16,000 Y del primer tema entendemos 262 00:11:16,000 --> 00:11:18,000 que nuestro programa es una serie de sentencias 263 00:11:18,000 --> 00:11:19,000 una tras otra. 264 00:11:19,000 --> 00:11:21,000 Claro, pues ese será nuestro programa, 265 00:11:21,000 --> 00:11:22,000 el que va aquí, 266 00:11:22,000 --> 00:11:24,000 una serie de sentencias una tras otra. 267 00:11:24,000 --> 00:11:26,000 Pero ahora ya estas sentencias, 268 00:11:26,000 --> 00:11:28,000 además de ser los if, los while, 269 00:11:28,000 --> 00:11:29,000 lo que nos haga falta, 270 00:11:29,000 --> 00:11:31,000 serán sentencias que puedan 271 00:11:31,000 --> 00:11:33,000 crear objetos de esas clases que tenemos. 272 00:11:33,000 --> 00:11:36,000 Antes no teníamos clases nuestras hechas, 273 00:11:36,000 --> 00:11:38,000 que representaban realidades, 274 00:11:38,000 --> 00:11:39,000 no las teníamos. 275 00:11:39,000 --> 00:11:41,000 Entonces no instanciábamos objetos, 276 00:11:41,000 --> 00:11:42,000 no instanciábamos ninguno, 277 00:11:42,000 --> 00:11:44,000 simplemente trabajábamos o con números 278 00:11:44,000 --> 00:11:46,000 o con cadenas como mucho. 279 00:11:46,000 --> 00:11:48,000 No trabajábamos con nada más. 280 00:11:48,000 --> 00:11:50,000 Pero ahora ya podemos crear objetos 281 00:11:50,000 --> 00:11:51,000 de estas clases, 282 00:11:51,000 --> 00:11:54,000 ya podemos crearlos en nuestro programa 283 00:11:54,000 --> 00:11:56,000 para trabajar con ellos. 284 00:11:56,000 --> 00:11:57,000 Ya podemos instanciarlos 285 00:11:57,000 --> 00:11:59,000 para trabajar con ellos. 286 00:12:00,000 --> 00:12:02,000 ¿Y cómo se instancia un objeto 287 00:12:02,000 --> 00:12:04,000 cuando yo lo necesito? 288 00:12:04,000 --> 00:12:05,000 Porque en mi aplicación 289 00:12:05,000 --> 00:12:08,000 quiero trabajar con un cliente Pepito. 290 00:12:08,000 --> 00:12:10,000 Pues ya lo sabemos, 291 00:12:10,000 --> 00:12:12,000 porque ya lo hicimos. 292 00:12:12,000 --> 00:12:13,000 Que en mi aplicación 293 00:12:13,000 --> 00:12:15,000 quiero que aparezca el cliente Pepito 294 00:12:15,000 --> 00:12:16,000 porque voy a trabajar con él, 295 00:12:16,000 --> 00:12:18,000 con ese ejemplo concreto. 296 00:12:18,000 --> 00:12:20,000 Pues tendré que declarar 297 00:12:20,000 --> 00:12:22,000 ese objeto, 298 00:12:22,000 --> 00:12:24,000 el nombre de la clase, 299 00:12:24,000 --> 00:12:26,000 el nombre que le doy al objeto, 300 00:12:26,000 --> 00:12:28,000 el que me dé la gana, 301 00:12:29,000 --> 00:12:31,000 ¿y cómo lo instanciábamos? 302 00:12:31,000 --> 00:12:33,000 Pues new, nombre de la clase, 303 00:12:35,000 --> 00:12:37,000 y esto de aquí. 304 00:12:41,000 --> 00:12:42,000 ¿Vale? 305 00:12:42,000 --> 00:12:44,000 Con lo cual esto ahora 306 00:12:44,000 --> 00:12:46,000 es otra variable más de mi programa, 307 00:12:46,000 --> 00:12:48,000 es otra variable más. 308 00:12:48,000 --> 00:12:50,000 Igual que esta. 309 00:12:51,000 --> 00:12:53,000 Igual que esta es una variable n, 310 00:12:53,000 --> 00:12:55,000 pero es entera. 311 00:12:56,000 --> 00:12:57,000 Daniel. 312 00:12:59,000 --> 00:13:00,000 No te perdono. 313 00:13:00,000 --> 00:13:03,000 Pues esta es otra variable más, 314 00:13:03,000 --> 00:13:05,000 es otra variable más de mi programa. 315 00:13:05,000 --> 00:13:07,000 Esta es la variable c. 316 00:13:07,000 --> 00:13:08,000 La diferencia entre la variable c 317 00:13:08,000 --> 00:13:09,000 y la variable n 318 00:13:09,000 --> 00:13:12,000 es que c es una variable de tipo objeto 319 00:13:12,000 --> 00:13:15,000 y n es una variable de tipo primitivo. 320 00:13:15,000 --> 00:13:17,000 Entonces n 321 00:13:17,000 --> 00:13:19,000 es el espacio directamente aquí en memoria 322 00:13:19,000 --> 00:13:20,000 de cuatro bytes 323 00:13:20,000 --> 00:13:22,000 para guardar el numerito, 324 00:13:22,000 --> 00:13:24,000 27, 12, menos 15, 325 00:13:24,000 --> 00:13:27,000 y c es otra variable de mi programa, 326 00:13:27,000 --> 00:13:30,000 pero c ya sabemos que en memoria 327 00:13:30,000 --> 00:13:31,000 es otra cosa. 328 00:13:31,000 --> 00:13:33,000 C en memoria es, 329 00:13:39,000 --> 00:13:41,000 pues es otro espacio 330 00:13:41,000 --> 00:13:43,000 que se llama c, 331 00:13:43,000 --> 00:13:45,000 pero este espacio 332 00:13:45,000 --> 00:13:47,000 es una dirección de memoria 333 00:13:47,000 --> 00:13:49,000 y esta dirección de memoria 334 00:13:49,000 --> 00:13:50,000 ¿dónde lleva? 335 00:13:50,000 --> 00:13:53,000 Pues lleva a un espacio más grandote 336 00:13:53,000 --> 00:13:55,000 en la memoria RAM 337 00:13:55,000 --> 00:13:57,000 donde estarán los valores concretos 338 00:13:57,000 --> 00:14:00,000 de las propiedades de este objeto c. 339 00:14:00,000 --> 00:14:02,000 Pues el valor concreto de la propiedad nil, 340 00:14:02,000 --> 00:14:05,000 el valor concreto de la propiedad nombre, 341 00:14:05,000 --> 00:14:07,000 las propiedades que tenga. 342 00:14:07,000 --> 00:14:08,000 Aquí. 343 00:14:08,000 --> 00:14:09,000 ¿Vale? 344 00:14:09,000 --> 00:14:10,000 Pero es otra variable más. 345 00:14:10,000 --> 00:14:12,000 C es otra variable más de mi programa, 346 00:14:12,000 --> 00:14:13,000 igual que lo es n, 347 00:14:13,000 --> 00:14:15,000 pero esta es una variable objeto, 348 00:14:15,000 --> 00:14:17,000 con lo cual es esto en realidad, 349 00:14:17,000 --> 00:14:19,000 pero es otra variable, c. 350 00:14:19,000 --> 00:14:20,000 Entonces, ahora ya trabajamos 351 00:14:20,000 --> 00:14:22,000 con dos tipos de variables. 352 00:14:22,000 --> 00:14:25,000 Variables primitivas 353 00:14:25,000 --> 00:14:27,000 y variables objeto, 354 00:14:27,000 --> 00:14:30,000 que ya sabemos cómo funcionan por dentro. 355 00:14:30,000 --> 00:14:32,000 Entonces, como la variable objeto c, 356 00:14:32,000 --> 00:14:35,000 la variable objeto c en realidad 357 00:14:35,000 --> 00:14:37,000 tiene dentro muchas cosas, 358 00:14:37,000 --> 00:14:39,000 tiene dentro muchas cosas, 359 00:14:39,000 --> 00:14:41,000 pues lo que nos interesa de c 360 00:14:41,000 --> 00:14:42,000 son sus apartaditos, 361 00:14:42,000 --> 00:14:43,000 sus casillas, 362 00:14:43,000 --> 00:14:45,000 es lo que nos interesa de c. 363 00:14:45,000 --> 00:14:47,000 Por eso, cuando queremos acceder, 364 00:14:47,000 --> 00:14:49,000 por ejemplo, al nombre del cliente 365 00:14:49,000 --> 00:14:51,000 para darle un valor, 366 00:14:52,000 --> 00:14:54,000 pues hacíamos c. 367 00:14:54,000 --> 00:14:56,000 para decir de c, 368 00:14:56,000 --> 00:14:59,000 que c es todo, c es todo, 369 00:14:59,000 --> 00:15:01,000 pues de c quiero acceder al nombre, 370 00:15:01,000 --> 00:15:03,000 pues c.nombre. 371 00:15:09,000 --> 00:15:10,000 ¿Vale? 372 00:15:10,000 --> 00:15:12,000 Entonces, la variable objeto 373 00:15:12,000 --> 00:15:14,000 tiene muchas cosas dentro. 374 00:15:14,000 --> 00:15:16,000 Ella sola por sí misma no es nadie, 375 00:15:16,000 --> 00:15:18,000 nada más que una dirección de memoria. 376 00:15:18,000 --> 00:15:20,000 No tendría sentido que yo hiciera c igual 377 00:15:20,000 --> 00:15:22,000 a algo aquí, 378 00:15:22,000 --> 00:15:23,000 que fuera un string, un número, 379 00:15:23,000 --> 00:15:24,000 no tendría sentido, 380 00:15:24,000 --> 00:15:26,000 porque c lo único que puede recibir 381 00:15:26,000 --> 00:15:27,000 es una dirección de memoria, 382 00:15:27,000 --> 00:15:28,000 es lo único que puede recibir c, 383 00:15:28,000 --> 00:15:29,000 no puede recibir nada más 384 00:15:29,000 --> 00:15:31,000 que una dirección de memoria. 385 00:15:31,000 --> 00:15:32,000 Lo que tiene sentido 386 00:15:32,000 --> 00:15:34,000 es que yo acceda 387 00:15:34,000 --> 00:15:36,000 a los diferentes apartaditos de c, 388 00:15:36,000 --> 00:15:38,000 a lo que se llaman los campos, 389 00:15:38,000 --> 00:15:41,000 el campo nombre, el campo nid. 390 00:15:43,000 --> 00:15:44,000 ¿Vale? 391 00:15:44,000 --> 00:15:46,000 Y mi programa puede tener 200.000 clientes, 392 00:15:46,000 --> 00:15:47,000 clientes de 1, 393 00:15:47,000 --> 00:15:48,000 clientes de 2, 394 00:15:48,000 --> 00:15:49,000 clientes de 3, 395 00:15:49,000 --> 00:15:51,000 todos los que le den la gana. 396 00:15:51,000 --> 00:15:53,000 Y todos ellos serán de esta clase. 397 00:15:53,000 --> 00:15:55,000 Todos los que le den la gana. 398 00:15:55,000 --> 00:15:57,000 Y todos ellos tendrán 399 00:15:57,000 --> 00:15:59,000 su propio conjunto de propiedades 400 00:15:59,000 --> 00:16:01,000 con sus propios valores. 401 00:16:01,000 --> 00:16:03,000 Todos tendrán cada uno el suyo. 402 00:16:03,000 --> 00:16:04,000 Cada uno tendrá su nid, 403 00:16:04,000 --> 00:16:05,000 cada uno su nombre, 404 00:16:05,000 --> 00:16:07,000 cada uno su edad. 405 00:16:07,000 --> 00:16:08,000 ¿Vale? 406 00:16:08,000 --> 00:16:09,000 Y ahora ya mi aplicación 407 00:16:09,000 --> 00:16:10,000 con estos clientes 408 00:16:10,000 --> 00:16:12,000 hará lo que quiera con todos ellos. 409 00:16:12,000 --> 00:16:13,000 Pues meterse en un bucle 410 00:16:13,000 --> 00:16:16,000 para ver cuántos de ellos 411 00:16:16,000 --> 00:16:18,000 son mayores de edad. 412 00:16:18,000 --> 00:16:19,000 Pues meterse en un bucle 413 00:16:19,000 --> 00:16:20,000 para recorrerlos todos 414 00:16:20,000 --> 00:16:21,000 y darles un nombre. 415 00:16:21,000 --> 00:16:23,000 Pues lo que me pida mi aplicación. 416 00:16:23,000 --> 00:16:24,000 La aplicación tendrá una serie 417 00:16:24,000 --> 00:16:25,000 de requisitos, 418 00:16:25,000 --> 00:16:27,000 que es lo que tiene que hacer. 419 00:16:27,000 --> 00:16:29,000 Bueno, pues ya mi aplicación 420 00:16:29,000 --> 00:16:32,000 hará, construirá aquí las sentencias 421 00:16:32,000 --> 00:16:33,000 lo que tenga que hacer 422 00:16:33,000 --> 00:16:35,000 con esos clientes. 423 00:16:35,000 --> 00:16:36,000 O con esos pedidos 424 00:16:36,000 --> 00:16:38,000 o con lo que sea. 425 00:16:40,000 --> 00:16:41,000 ¿Vale? 426 00:16:41,000 --> 00:16:43,000 Bueno, pues clarísimo, 427 00:16:43,000 --> 00:16:44,000 de nuevo, 428 00:16:44,000 --> 00:16:45,000 se supone que ya estaba 429 00:16:45,000 --> 00:16:47,000 lo que es una clase, 430 00:16:47,000 --> 00:16:48,000 lo que es un objeto 431 00:16:48,000 --> 00:16:50,000 y cómo se crean objetos 432 00:16:50,000 --> 00:16:52,000 y cómo se accede 433 00:16:52,000 --> 00:16:53,000 a las propiedades 434 00:16:53,000 --> 00:16:54,000 o campos de ellos. 435 00:16:54,000 --> 00:16:55,000 Y sobre todo el sentido 436 00:16:55,000 --> 00:16:57,000 que tiene todo eso, claro. 437 00:16:57,000 --> 00:16:58,000 Entonces esto no sale de la nada. 438 00:16:58,000 --> 00:16:59,000 Una aplicación de producción 439 00:16:59,000 --> 00:17:00,000 de trabajadores de objetos 440 00:17:00,000 --> 00:17:01,000 no sale de la nada. 441 00:17:01,000 --> 00:17:02,000 Sale de que uno haya hecho 442 00:17:02,000 --> 00:17:04,000 un análisis previo 443 00:17:04,000 --> 00:17:05,000 y haya decidido, 444 00:17:05,000 --> 00:17:07,000 primero, 445 00:17:07,000 --> 00:17:10,000 qué entidades quiere gestionar. 446 00:17:10,000 --> 00:17:11,000 Y cada una de ellas 447 00:17:11,000 --> 00:17:13,000 qué propiedades va a tener. 448 00:17:13,000 --> 00:17:15,000 Y con ese análisis previo 449 00:17:15,000 --> 00:17:16,000 ya se puede empezar, 450 00:17:16,000 --> 00:17:17,000 ya se puede poner uno 451 00:17:17,000 --> 00:17:19,000 a construir ya su programa principal 452 00:17:19,000 --> 00:17:21,000 y decidir qué cosas tiene que hacer. 453 00:17:21,000 --> 00:17:22,000 ¿Vale? 454 00:17:24,000 --> 00:17:27,000 Bueno, ¿alguna duda sobre esto? 455 00:17:28,000 --> 00:17:29,000 No. 456 00:17:31,000 --> 00:17:32,000 Vale, pues la otra parte, 457 00:17:32,000 --> 00:17:34,000 los métodos. 458 00:17:35,000 --> 00:17:37,000 ¿Qué eran los métodos? 459 00:17:37,000 --> 00:17:38,000 Pues trocitos de código 460 00:17:38,000 --> 00:17:39,000 entre llaves 461 00:17:39,000 --> 00:17:40,000 con un nombrecito. 462 00:17:40,000 --> 00:17:42,000 Esos eran los métodos. 463 00:17:42,000 --> 00:17:44,000 Puede haber uno o mil métodos. 464 00:17:44,000 --> 00:17:46,000 Trocitos de sentencias 465 00:17:46,000 --> 00:17:48,000 con un nombrecito 466 00:17:48,000 --> 00:17:53,000 que cada objeto de esta clase 467 00:17:53,000 --> 00:17:54,000 podía invocar. 468 00:17:54,000 --> 00:17:56,000 Esos eran los métodos. 469 00:17:56,000 --> 00:17:57,000 Entonces la diferencia 470 00:17:57,000 --> 00:17:59,000 entre los objetos 471 00:17:59,000 --> 00:18:01,000 y las variables primitivas normales 472 00:18:01,000 --> 00:18:03,000 como esta n, por ejemplo, 473 00:18:03,000 --> 00:18:04,000 es que esta variable n 474 00:18:04,000 --> 00:18:06,000 solamente vale para 475 00:18:06,000 --> 00:18:07,000 recibir un valor 476 00:18:07,000 --> 00:18:09,000 con n igual a 7 477 00:18:09,000 --> 00:18:10,000 o entregarlo, 478 00:18:10,000 --> 00:18:12,000 porque yo se le asigne a otra 479 00:18:12,000 --> 00:18:13,000 m igual a n. 480 00:18:13,000 --> 00:18:14,000 ¿Vale? 481 00:18:14,000 --> 00:18:15,000 Pues aquí está n 482 00:18:15,000 --> 00:18:16,000 entregando su valor 483 00:18:16,000 --> 00:18:17,000 para que lo reciba m 484 00:18:17,000 --> 00:18:18,000 y aquí está n 485 00:18:18,000 --> 00:18:19,000 recibiendo el 7. 486 00:18:19,000 --> 00:18:20,000 Pues solo para eso 487 00:18:20,000 --> 00:18:22,000 valen las variables primitivas. 488 00:18:22,000 --> 00:18:23,000 Para recibir un valor 489 00:18:23,000 --> 00:18:25,000 y tenerlo ahí guardadito 490 00:18:25,000 --> 00:18:26,000 y para entregárselo 491 00:18:26,000 --> 00:18:27,000 a otra variable 492 00:18:27,000 --> 00:18:28,000 dentro de una expresión 493 00:18:28,000 --> 00:18:29,000 o como sea, 494 00:18:29,000 --> 00:18:30,000 solo valen para esa. 495 00:18:30,000 --> 00:18:32,000 Bueno, pues las variables objeto 496 00:18:32,000 --> 00:18:34,000 valen para algo más. 497 00:18:34,000 --> 00:18:35,000 Para recibir valor, 498 00:18:35,000 --> 00:18:36,000 por supuesto. 499 00:18:36,000 --> 00:18:38,000 En sus campos, claro. 500 00:18:38,000 --> 00:18:39,000 En sus campos. 501 00:18:39,000 --> 00:18:40,000 Para recibir valor, 502 00:18:40,000 --> 00:18:41,000 por supuesto. 503 00:18:41,000 --> 00:18:42,000 Pero también valen 504 00:18:42,000 --> 00:18:44,000 para llamar a métodos. 505 00:18:44,000 --> 00:18:46,000 Para llamar a trozos de código 506 00:18:46,000 --> 00:18:48,000 de sus clases. 507 00:18:49,000 --> 00:18:51,000 ¿Vale? 508 00:18:51,000 --> 00:18:53,000 ¿Vale? 509 00:19:21,000 --> 00:19:23,000 Por ejemplo, si mi clase pedido, 510 00:19:23,000 --> 00:19:24,000 las dos propiedades 511 00:19:24,000 --> 00:19:25,000 que hemos decidido 512 00:19:25,000 --> 00:19:27,000 que nos interesan del pedido, 513 00:19:27,000 --> 00:19:28,000 porque es lo que necesita 514 00:19:28,000 --> 00:19:29,000 la aplicación, 515 00:19:29,000 --> 00:19:31,000 pues si hemos decidido 516 00:19:31,000 --> 00:19:33,000 que lo que necesitamos saber 517 00:19:33,000 --> 00:19:34,000 de cada pedido 518 00:19:34,000 --> 00:19:36,000 es su descripción 519 00:19:39,000 --> 00:19:40,000 y el precio, 520 00:19:40,000 --> 00:19:41,000 pues por ejemplo, 521 00:19:41,000 --> 00:19:43,000 podríamos haber decidido 522 00:19:43,000 --> 00:19:45,000 solamente estas dos propiedades. 523 00:19:45,000 --> 00:19:47,000 Porque si de cada pedido 524 00:19:47,000 --> 00:19:48,000 solo nos interesa eso, 525 00:19:48,000 --> 00:19:49,000 pues no hay que meter 526 00:19:49,000 --> 00:19:50,000 más propiedades 527 00:19:50,000 --> 00:19:51,000 que hacen falta. 528 00:19:51,000 --> 00:19:53,000 ¿Vale? 529 00:19:53,000 --> 00:19:55,000 Entonces, 530 00:19:55,000 --> 00:19:56,000 luego uno, 531 00:19:56,000 --> 00:19:57,000 una vez ya decidido 532 00:19:57,000 --> 00:19:58,000 las entidades 533 00:19:58,000 --> 00:20:00,000 y decidido las propiedades, 534 00:20:00,000 --> 00:20:01,000 pues tiene que construir 535 00:20:01,000 --> 00:20:02,000 la aplicación pensando, 536 00:20:02,000 --> 00:20:03,000 vamos a ver, 537 00:20:03,000 --> 00:20:04,000 los pedidos, 538 00:20:04,000 --> 00:20:05,000 ¿qué acciones 539 00:20:05,000 --> 00:20:06,000 me va a interesar a mí 540 00:20:06,000 --> 00:20:07,000 hacer con ellos? 541 00:20:07,000 --> 00:20:08,000 ¿Qué acciones 542 00:20:08,000 --> 00:20:09,000 me va a interesar 543 00:20:09,000 --> 00:20:10,000 hacer con los pedidos? 544 00:20:10,000 --> 00:20:11,000 Pues con los pedidos 545 00:20:11,000 --> 00:20:12,000 te va a interesar 546 00:20:12,000 --> 00:20:14,000 subirles el precio 547 00:20:14,000 --> 00:20:15,000 o ponerles IVA 548 00:20:15,000 --> 00:20:16,000 o lo que sea. 549 00:20:16,000 --> 00:20:18,000 O cambiarles la descripción. 550 00:20:18,000 --> 00:20:19,000 Bueno, 551 00:20:19,000 --> 00:20:20,000 pues una vez 552 00:20:20,000 --> 00:20:21,000 identificadas 553 00:20:21,000 --> 00:20:22,000 qué acciones 554 00:20:22,000 --> 00:20:23,000 interesa hacer 555 00:20:23,000 --> 00:20:24,000 con los pedidos, 556 00:20:24,000 --> 00:20:25,000 uno puede incorporar 557 00:20:25,000 --> 00:20:26,000 esas acciones 558 00:20:26,000 --> 00:20:27,000 en métodos. 559 00:20:30,000 --> 00:20:31,000 ¿Vale? 560 00:20:31,000 --> 00:20:32,000 Entonces, 561 00:20:32,000 --> 00:20:33,000 en este, 562 00:20:33,000 --> 00:20:34,000 por ejemplo, 563 00:20:34,000 --> 00:20:36,000 que una acción 564 00:20:36,000 --> 00:20:37,000 de 565 00:20:37,000 --> 00:20:38,000 los pedidos 566 00:20:38,000 --> 00:20:39,000 sea, 567 00:20:39,000 --> 00:20:40,000 por ejemplo, 568 00:20:40,000 --> 00:20:41,000 mostrar el precio 569 00:20:41,000 --> 00:20:42,000 con el IVA 570 00:20:42,000 --> 00:20:43,000 o más que mostrar, 571 00:20:43,000 --> 00:20:44,000 devolver el precio 572 00:20:44,000 --> 00:20:45,000 con IVA, 573 00:20:45,000 --> 00:20:46,000 por ejemplo. 574 00:20:47,000 --> 00:20:48,000 Eh, 575 00:20:48,000 --> 00:20:49,000 pasándole 576 00:20:49,000 --> 00:20:50,000 un IVA 577 00:20:50,000 --> 00:20:51,000 desde fuera, 578 00:20:51,000 --> 00:20:52,000 porque el IVA 579 00:20:52,000 --> 00:20:53,000 a lo mejor es diferente 580 00:20:53,000 --> 00:20:54,000 en función del tipo 581 00:20:54,000 --> 00:20:55,000 de pedido, 582 00:20:55,000 --> 00:20:56,000 pues el IVA 583 00:20:56,000 --> 00:20:57,000 puede ser distinto. 584 00:20:57,000 --> 00:20:58,000 Puede ser 10, 585 00:20:58,000 --> 00:20:59,000 16, 586 00:20:59,000 --> 00:21:00,000 el que sea. 587 00:21:00,000 --> 00:21:01,000 Bueno, 588 00:21:01,000 --> 00:21:02,000 pues entonces, 589 00:21:02,000 --> 00:21:03,000 como esa es una acción 590 00:21:03,000 --> 00:21:04,000 concreta 591 00:21:04,000 --> 00:21:05,000 que queremos que hagan 592 00:21:05,000 --> 00:21:06,000 los pedidos, 593 00:21:06,000 --> 00:21:07,000 queremos que hagan los pedidos, 594 00:21:07,000 --> 00:21:08,000 que es devolvernos 595 00:21:08,000 --> 00:21:09,000 su precio con el IVA 596 00:21:09,000 --> 00:21:10,000 que yo le diga, 597 00:21:10,000 --> 00:21:11,000 pues entonces 598 00:21:11,000 --> 00:21:12,000 nos haríamos un método 599 00:21:12,000 --> 00:21:13,000 para esa acción, 600 00:21:13,000 --> 00:21:14,000 devolver precio 601 00:21:14,000 --> 00:21:15,000 con el IVA. 602 00:21:15,000 --> 00:21:16,000 Y ahora, 603 00:21:16,000 --> 00:21:17,000 ¿cómo programábamos 604 00:21:17,000 --> 00:21:18,000 los métodos? 605 00:21:18,000 --> 00:21:20,000 Pues había varias cosas 606 00:21:20,000 --> 00:21:21,000 que, 607 00:21:21,000 --> 00:21:22,000 eh, 608 00:21:22,000 --> 00:21:24,000 a las que atacábamos. 609 00:21:24,000 --> 00:21:25,000 Primero decidir el nombre. 610 00:21:25,000 --> 00:21:26,000 El nombre. 611 00:21:26,000 --> 00:21:28,000 Lo más explicativo posible. 612 00:21:28,000 --> 00:21:29,000 Me da igual que tenga 613 00:21:29,000 --> 00:21:30,000 100 caracteres 614 00:21:30,000 --> 00:21:31,000 el nombre del método. 615 00:21:31,000 --> 00:21:32,000 Me da lo mismo. 616 00:21:32,000 --> 00:21:33,000 Da igual. 617 00:21:33,000 --> 00:21:35,000 Como si es así. 618 00:21:35,000 --> 00:21:36,000 Da lo mismo. 619 00:21:36,000 --> 00:21:37,000 Si luego, 620 00:21:37,000 --> 00:21:38,000 con el autocompletado 621 00:21:38,000 --> 00:21:39,000 uno lo escribe, 622 00:21:39,000 --> 00:21:40,000 siempre. 623 00:21:40,000 --> 00:21:41,000 Pero, 624 00:21:41,000 --> 00:21:43,000 métodos de nombres cortos, 625 00:21:43,000 --> 00:21:44,000 una aplicación, 626 00:21:44,000 --> 00:21:45,000 todo es una aplicación 627 00:21:45,000 --> 00:21:46,000 y los nombres de los métodos 628 00:21:46,000 --> 00:21:47,000 son, 629 00:21:47,000 --> 00:21:48,000 subir, 630 00:21:48,000 --> 00:21:49,000 bajar, 631 00:21:49,000 --> 00:21:50,000 sumar. 632 00:21:50,000 --> 00:21:51,000 Eso lo tiras a la basura 633 00:21:51,000 --> 00:21:52,000 porque no entiendes 634 00:21:52,000 --> 00:21:53,000 que hace ese método. 635 00:21:53,000 --> 00:21:54,000 ¿Vale? 636 00:21:54,000 --> 00:21:55,000 Entonces, 637 00:21:55,000 --> 00:21:56,000 el nombre lo más largo posible. 638 00:21:56,000 --> 00:21:57,000 Y, 639 00:21:57,000 --> 00:21:58,000 no obligatorio, 640 00:21:58,000 --> 00:21:59,000 empezando con minúscula, 641 00:21:59,000 --> 00:22:00,000 recordad, 642 00:22:00,000 --> 00:22:02,000 como práctica de programación 643 00:22:02,000 --> 00:22:03,000 que deberíamos todos seguir 644 00:22:03,000 --> 00:22:04,000 porque va a facilitar 645 00:22:04,000 --> 00:22:05,000 que uno en una aplicación 646 00:22:05,000 --> 00:22:06,000 entienda. 647 00:22:06,000 --> 00:22:07,000 Cuando ve de repente 648 00:22:07,000 --> 00:22:08,000 las cosas sueltas, 649 00:22:08,000 --> 00:22:09,000 le dirás si eso es método, 650 00:22:09,000 --> 00:22:10,000 si es clase, 651 00:22:10,000 --> 00:22:11,000 si es constructor. 652 00:22:11,000 --> 00:22:12,000 Entonces, 653 00:22:12,000 --> 00:22:13,000 empezando con minúscula. 654 00:22:13,000 --> 00:22:14,000 Luego, 655 00:22:14,000 --> 00:22:16,000 lo siguiente que decidíamos. 656 00:22:16,000 --> 00:22:18,000 Esta acción, 657 00:22:18,000 --> 00:22:19,000 que va a ser el pedido, 658 00:22:19,000 --> 00:22:20,000 esta acción, 659 00:22:20,000 --> 00:22:23,000 necesita alguna información 660 00:22:23,000 --> 00:22:26,000 aparte de las propiedades 661 00:22:26,000 --> 00:22:27,000 del pedido 662 00:22:27,000 --> 00:22:28,000 porque las propiedades 663 00:22:28,000 --> 00:22:29,000 tienen acceso directo, 664 00:22:29,000 --> 00:22:30,000 están aquí. 665 00:22:30,000 --> 00:22:31,000 Entonces, 666 00:22:31,000 --> 00:22:33,000 no hay que pasarlas ni nada. 667 00:22:33,000 --> 00:22:34,000 Bueno, 668 00:22:34,000 --> 00:22:35,000 pues en este caso hemos dicho 669 00:22:35,000 --> 00:22:36,000 que esta acción en concreto 670 00:22:36,000 --> 00:22:37,000 lo que va a hacer va a ser, 671 00:22:37,000 --> 00:22:38,000 va a ser, 672 00:22:38,000 --> 00:22:40,000 sumarle al precio el IVA, 673 00:22:40,000 --> 00:22:42,000 pero le tengo que informar yo 674 00:22:42,000 --> 00:22:43,000 de cuánto es ese IVA 675 00:22:43,000 --> 00:22:44,000 porque a veces será de 10, 676 00:22:44,000 --> 00:22:45,000 de 16, 677 00:22:45,000 --> 00:22:46,000 de 20, 678 00:22:46,000 --> 00:22:47,000 le tengo que informar. 679 00:22:47,000 --> 00:22:48,000 Ah, 680 00:22:48,000 --> 00:22:49,000 pues entonces para este método 681 00:22:49,000 --> 00:22:50,000 necesito una información 682 00:22:50,000 --> 00:22:51,000 desde fuera, 683 00:22:51,000 --> 00:22:52,000 necesito. 684 00:22:52,000 --> 00:22:53,000 Pues entonces se la paso aquí 685 00:22:53,000 --> 00:22:56,000 en la lista de parámetros. 686 00:22:56,000 --> 00:22:57,000 ¿Vale? 687 00:22:57,000 --> 00:22:58,000 Y aquí podría tener uno 688 00:22:58,000 --> 00:22:59,000 o muchos parámetros, 689 00:22:59,000 --> 00:23:00,000 los que necesite esa acción 690 00:23:00,000 --> 00:23:01,000 en concreto. 691 00:23:01,000 --> 00:23:02,000 Si tiene más de uno, 692 00:23:02,000 --> 00:23:04,000 pues separados por comas. 693 00:23:04,000 --> 00:23:05,000 Y cada uno de ellos 694 00:23:05,000 --> 00:23:06,000 indicado como se declaran 695 00:23:06,000 --> 00:23:07,000 las variables, 696 00:23:07,000 --> 00:23:08,000 no tenía más. 697 00:23:08,000 --> 00:23:09,000 ¿Vale? 698 00:23:09,000 --> 00:23:10,000 Pues entonces uno aquí 699 00:23:10,000 --> 00:23:11,000 ya hace lo que tuviera que hacer, 700 00:23:11,000 --> 00:23:12,000 pues ¿qué vamos a hacer? 701 00:23:12,000 --> 00:23:14,000 Sumarle al precio 702 00:23:14,000 --> 00:23:18,000 el porcentaje de esto, 703 00:23:18,000 --> 00:23:20,000 que sería 704 00:23:20,000 --> 00:23:29,000 precio por IVA entre 100. 705 00:23:29,000 --> 00:23:30,000 Vale, 706 00:23:30,000 --> 00:23:31,000 entonces esto, 707 00:23:31,000 --> 00:23:33,000 pues imaginamos que se lo, 708 00:23:33,000 --> 00:23:34,000 por ejemplo, 709 00:23:34,000 --> 00:23:36,000 se lo asignamos a una variable, 710 00:23:37,000 --> 00:23:41,000 resultado, 711 00:23:41,000 --> 00:23:42,000 y ahora ¿qué? 712 00:23:42,000 --> 00:23:43,000 Hemos dicho que queremos 713 00:23:43,000 --> 00:23:44,000 que haga este método, 714 00:23:44,000 --> 00:23:46,000 devolver eso como de retorno, 715 00:23:46,000 --> 00:23:47,000 devolverlo. 716 00:23:47,000 --> 00:23:48,000 Vale, 717 00:23:48,000 --> 00:23:50,000 pues entonces poníamos un return 718 00:23:50,000 --> 00:23:51,000 y aquí después del return 719 00:23:51,000 --> 00:23:53,000 hay que poner 720 00:23:53,000 --> 00:23:55,000 el valor que yo quiero 721 00:23:55,000 --> 00:23:56,000 que se devuelva, 722 00:23:56,000 --> 00:23:57,000 que solo puede ser uno. 723 00:23:57,000 --> 00:23:59,000 El método solo puede devolver 724 00:23:59,000 --> 00:24:00,000 una cosa. 725 00:24:00,000 --> 00:24:01,000 Eso es una movida, 726 00:24:01,000 --> 00:24:03,000 solo puede devolver una cosa. 727 00:24:03,000 --> 00:24:04,000 Vale, 728 00:24:04,000 --> 00:24:05,000 pues devuelve esto. 729 00:24:05,000 --> 00:24:06,000 Con lo cual, 730 00:24:06,000 --> 00:24:07,000 ¿qué me falta a mí ahora 731 00:24:07,000 --> 00:24:09,000 para declarar el método correctamente? 732 00:24:09,000 --> 00:24:11,000 Poner aquí el tipo de dato 733 00:24:11,000 --> 00:24:13,000 de lo que devuelve. 734 00:24:13,000 --> 00:24:15,000 ¿Que devuelva un double? 735 00:24:15,000 --> 00:24:19,000 Pues tendría que poner aquí double. 736 00:24:19,000 --> 00:24:21,000 ¿Vale? 737 00:24:21,000 --> 00:24:22,000 ¿Es obligatorio que todos los métodos 738 00:24:22,000 --> 00:24:23,000 devuelvan algo? 739 00:24:23,000 --> 00:24:24,000 No, 740 00:24:24,000 --> 00:24:25,000 a lo mejor un método 741 00:24:25,000 --> 00:24:26,000 lo único que tiene que hacer es, 742 00:24:26,000 --> 00:24:27,000 por ejemplo, 743 00:24:27,000 --> 00:24:30,000 modificar las propiedades. 744 00:24:30,000 --> 00:24:32,000 Perdóname.