1 00:00:00,300 --> 00:00:13,619 Vale, estoy grabando esta clase, por lo tanto, si decís algo, me estáis autorizando a que vuestra voz esté grabada en este vídeo. 2 00:00:14,060 --> 00:00:25,960 Si por si acaso no queréis que vuestra voz sea grabada, me levantáis la mano, me decís que no queréis que se oiga tu voz, paro la registración y me hacéis vuestra pregunta, ¿vale? 3 00:00:25,960 --> 00:00:31,100 Pero que sepáis que todo lo que estamos diciendo ahora está siendo grabado 4 00:00:31,100 --> 00:00:31,260 ¿Sí? 5 00:00:32,520 --> 00:00:35,560 Vale, entonces, hoy vamos a empezar con Java básico 6 00:00:35,560 --> 00:00:35,939 ¿Sí? 7 00:00:37,039 --> 00:00:42,500 Lo que vamos a ver al principio es, si os acordáis, la última vez, el viernes, no, el lunes 8 00:00:42,500 --> 00:00:47,439 Lo que vimos es, hicimos un programita utilizando Eclipse 9 00:00:47,439 --> 00:00:48,060 ¿Sí? 10 00:00:48,060 --> 00:00:56,579 Entonces, nosotros ya hemos hecho una prueba de escribir un programa, de escribir algún código, cosas así 11 00:00:56,579 --> 00:01:02,939 Y hemos visto algunas sentencias, algunas palabras claves del lenguaje 12 00:01:02,939 --> 00:01:04,980 Algo hemos visto, ¿vale? 13 00:01:05,680 --> 00:01:08,620 Ahora, hacemos un paso atrás de abstracción 14 00:01:08,620 --> 00:01:13,480 Pensamos un poquito de cuál es la estructura básica de un lenguaje, de un programa 15 00:01:13,480 --> 00:01:16,079 Y luego volvemos a ver 16 00:01:16,079 --> 00:01:18,780 Cómo se relaciona 17 00:01:18,780 --> 00:01:19,799 Lo que ya hemos hecho 18 00:01:19,799 --> 00:01:21,379 Con esta parte de aquí 19 00:01:21,379 --> 00:01:23,980 A partir de ahí 20 00:01:23,980 --> 00:01:25,439 Empezaremos a ver 21 00:01:25,439 --> 00:01:28,439 Algunas características del lenguaje 22 00:01:28,439 --> 00:01:29,599 Cómo son las variables 23 00:01:29,599 --> 00:01:31,459 Cómo son los métodos 24 00:01:31,459 --> 00:01:34,659 Y empezaremos a hacer pequeñas pruebas 25 00:01:34,659 --> 00:01:35,540 Sobre esto 26 00:01:35,540 --> 00:01:36,519 Tened en cuenta que 27 00:01:36,519 --> 00:01:38,000 Como todas las cosas 28 00:01:38,000 --> 00:01:41,540 A principio esto es muy muy muy sencillo 29 00:01:42,319 --> 00:01:42,599 ¿Vale? 30 00:01:42,599 --> 00:01:44,420 Entonces vosotros estáis escuchando 31 00:01:44,420 --> 00:01:45,700 Y decís, esto es muy burrido 32 00:01:45,700 --> 00:01:48,760 Esto está súper sencillo 33 00:01:48,760 --> 00:01:50,480 Estos acolletes 34 00:01:50,480 --> 00:01:52,420 Porque vamos, es fenomenal 35 00:01:52,420 --> 00:01:54,120 Hasta que llega un momento 36 00:01:54,120 --> 00:01:55,640 En que está el clásico clac 37 00:01:55,640 --> 00:01:57,980 De, oye, mira, esto no lo he entendido 38 00:01:57,980 --> 00:02:01,019 Empezáis a ir atrás en los apuntes 39 00:02:01,019 --> 00:02:03,319 Y os dais cuenta que no era tan fácil 40 00:02:03,319 --> 00:02:04,159 Como parecía 41 00:02:04,159 --> 00:02:06,120 Y que las cosas se van complicando 42 00:02:06,120 --> 00:02:07,480 Mi consejo 43 00:02:07,480 --> 00:02:09,400 Dos, mis consejos, dos 44 00:02:09,400 --> 00:02:10,180 Primero 45 00:02:10,180 --> 00:02:13,719 Prestad atención, ¿vale? 46 00:02:13,939 --> 00:02:15,560 Seguid lo que estamos haciendo 47 00:02:15,560 --> 00:02:17,900 Porque vamos añadiendo constantemente cosas 48 00:02:17,900 --> 00:02:21,340 Y segundo, no perdáis tiempo en casa 49 00:02:21,340 --> 00:02:24,039 A partir de esta tarde, lo que hemos visto 50 00:02:24,039 --> 00:02:27,520 Pues lo repasáis, hasta si es súper sencillo 51 00:02:27,520 --> 00:02:30,599 Si es súper sencillo, tardaréis una hora en repasarlo 52 00:02:30,599 --> 00:02:32,099 Ningún problema, ¿vale? 53 00:02:32,300 --> 00:02:34,960 Cuando las cosas se harán más complejas 54 00:02:34,960 --> 00:02:38,900 Haber tenido la base bien trabajada 55 00:02:38,900 --> 00:02:40,539 y a verla de pasada varias veces 56 00:02:40,539 --> 00:02:42,639 os ayudará a entender las cosas más difíciles 57 00:02:44,360 --> 00:02:46,800 no os descolguéis 58 00:02:46,800 --> 00:02:47,919 del ritmo 59 00:02:47,919 --> 00:02:50,479 es decir, nosotros iremos 60 00:02:50,479 --> 00:02:51,360 a una cierta velocidad 61 00:02:51,360 --> 00:02:54,840 si de repente no estáis entendiendo lo que digo 62 00:02:54,840 --> 00:02:56,219 no esperéis 63 00:02:56,219 --> 00:02:58,099 dos semanas 64 00:02:58,099 --> 00:03:00,280 antes de decirme, oye profe, mira 65 00:03:00,280 --> 00:03:02,699 no he entendido esta cosa 66 00:03:02,699 --> 00:03:03,520 que es una variable 67 00:03:03,520 --> 00:03:05,800 decídmelo el mismo día 68 00:03:05,800 --> 00:03:07,639 decídmelo el día después 69 00:03:07,639 --> 00:03:09,939 Si vosotros hoy hacéis una cosa 70 00:03:09,939 --> 00:03:11,199 Pensáis que la habéis entendida 71 00:03:11,199 --> 00:03:12,740 Vais a casa, la leéis 72 00:03:12,740 --> 00:03:14,860 Y veis que no la habéis entendida bien 73 00:03:14,860 --> 00:03:17,159 El viernes, la próxima vez 74 00:03:17,159 --> 00:03:18,180 Me venís a decir 75 00:03:18,180 --> 00:03:19,800 Oye, mira, que yo he repasado esto 76 00:03:19,800 --> 00:03:20,719 Y esto no lo he entendido 77 00:03:20,719 --> 00:03:23,180 Es para vosotros, no para mí 78 00:03:23,180 --> 00:03:24,759 A mí me da igual 79 00:03:24,759 --> 00:03:25,960 Repasar la misma cosa 80 00:03:25,960 --> 00:03:27,060 O ir seguido adelante 81 00:03:27,060 --> 00:03:28,620 Si vosotros entendéis todo 82 00:03:28,620 --> 00:03:29,539 Si yo voy con un tren 83 00:03:29,539 --> 00:03:32,479 Y llegamos a cosas más difíciles 84 00:03:32,479 --> 00:03:33,139 A final de año 85 00:03:33,139 --> 00:03:33,979 ¿Vale? 86 00:03:34,020 --> 00:03:35,020 Pero yo lo que quiero 87 00:03:35,020 --> 00:03:37,900 Es que no pierda mitad de la clase 88 00:03:37,900 --> 00:03:38,960 ¿Vale? 89 00:03:39,000 --> 00:03:41,259 Porque las cosas básicas no se han entendido 90 00:03:41,259 --> 00:03:44,199 No tengáis miedo a levantar la mano 91 00:03:44,199 --> 00:03:45,919 Cuando preguntaréis 92 00:03:45,919 --> 00:03:47,159 No he entendido una variable 93 00:03:47,159 --> 00:03:49,439 El 50% de la gente 94 00:03:49,439 --> 00:03:50,539 Está alrededor vuestra 95 00:03:50,539 --> 00:03:51,800 Tampoco lo ha entendido 96 00:03:51,800 --> 00:03:52,860 No os preocupéis 97 00:03:52,860 --> 00:03:54,939 ¿Sí? 98 00:03:56,340 --> 00:03:57,879 Vale, vamos a empezar aquí 99 00:03:57,879 --> 00:03:58,500 Entonces 100 00:03:58,500 --> 00:04:00,400 Este de aquí 101 00:04:00,400 --> 00:04:02,639 Es abstractamente 102 00:04:02,639 --> 00:04:03,780 El 103 00:04:03,780 --> 00:04:07,039 esquema de los 104 00:04:07,039 --> 00:04:09,139 programas que iremos haciendo nosotros 105 00:04:09,139 --> 00:04:10,620 ¿vale? nosotros cuando 106 00:04:10,620 --> 00:04:12,520 creamos un nuevo programa 107 00:04:12,520 --> 00:04:13,419 un nuevo 108 00:04:13,419 --> 00:04:16,639 trabajo, un nuevo proyecto 109 00:04:16,639 --> 00:04:18,540 una nueva cosa que vamos a hacer en Java 110 00:04:18,540 --> 00:04:20,680 crearemos un fichero 111 00:04:20,680 --> 00:04:23,139 con un nombre .java 112 00:04:23,139 --> 00:04:25,160 ¿vale? el fichero .java 113 00:04:25,160 --> 00:04:26,660 son los archivos fuentes 114 00:04:26,660 --> 00:04:29,120 es importante que 115 00:04:29,120 --> 00:04:31,360 el nombre que doy aquí 116 00:04:31,360 --> 00:04:33,019 por ejemplo en este caso 117 00:04:33,019 --> 00:04:35,000 mi clase, empiece por 118 00:04:35,000 --> 00:04:35,800 mayúscula 119 00:04:35,800 --> 00:04:38,860 es importante que 120 00:04:38,860 --> 00:04:40,540 si no lo hago no funciona, no 121 00:04:40,540 --> 00:04:42,600 si no lo hago funciona igual, pero 122 00:04:42,600 --> 00:04:44,459 en todo el mundo de Java 123 00:04:44,459 --> 00:04:46,920 cuando se crea un archivo de este 124 00:04:46,920 --> 00:04:49,000 estilo, se está creando una clase 125 00:04:49,000 --> 00:04:50,939 veremos más adelante que es la clase 126 00:04:50,939 --> 00:04:53,300 y las clases 127 00:04:53,300 --> 00:04:54,779 tienen nombre que 128 00:04:54,779 --> 00:04:57,279 empiezan por mayúscula 129 00:04:57,279 --> 00:04:58,959 ¿vale? esto me permitirá 130 00:04:58,959 --> 00:05:00,839 más adelante ver un nombre 131 00:05:00,839 --> 00:05:02,779 que no sé si es una clase o una variable 132 00:05:02,779 --> 00:05:05,360 O lo que sea, y si empieza por mayúscula 133 00:05:05,360 --> 00:05:07,420 Puedo decir, ah, probablemente es una clase 134 00:05:07,420 --> 00:05:08,759 Si es todo mayúscula, digo 135 00:05:08,759 --> 00:05:10,439 Ah, esta es una constante 136 00:05:10,439 --> 00:05:12,139 Si empieza por minúscula, digo 137 00:05:12,139 --> 00:05:14,620 Ah, esto puede ser un método o una variable 138 00:05:14,620 --> 00:05:15,339 ¿Vale? 139 00:05:15,879 --> 00:05:18,699 Y todos lo hacen así, por lo tanto, los dos también 140 00:05:18,699 --> 00:05:20,600 Teniendo en cuenta que 141 00:05:20,600 --> 00:05:22,680 Aquí también, en Java se suele poner 142 00:05:22,680 --> 00:05:24,500 Que si mi nombre 143 00:05:24,500 --> 00:05:27,120 Si el nombre que utilizo tiene varias palabras 144 00:05:27,120 --> 00:05:28,920 Como es este caso, que es mi clase 145 00:05:28,920 --> 00:05:31,139 Lo que se hace es una única palabra 146 00:05:31,139 --> 00:05:32,639 Donde cada una de las palabras 147 00:05:32,639 --> 00:05:34,620 tiene mayúscula, entonces la m 148 00:05:34,620 --> 00:05:36,360 de mi es mayúscula 149 00:05:36,360 --> 00:05:38,939 y la c de clase es mayúscula 150 00:05:38,939 --> 00:05:40,199 si, lo veremos después 151 00:05:40,199 --> 00:05:43,439 mi clase punto java 152 00:05:43,439 --> 00:05:44,639 que es un fichero 153 00:05:44,639 --> 00:05:46,259 es este gris, es el fichero 154 00:05:46,259 --> 00:05:48,800 tiene dentro la clase 155 00:05:48,800 --> 00:05:49,540 mi clase 156 00:05:49,540 --> 00:05:52,779 si esto se llamara gato 157 00:05:52,779 --> 00:05:54,779 punto java, pues aquí 158 00:05:54,779 --> 00:05:56,699 sería public class gato 159 00:05:56,699 --> 00:05:59,120 mayúsculas y minúsculas 160 00:05:59,120 --> 00:06:00,779 cuentan en java 161 00:06:00,779 --> 00:06:03,079 Java es case sensitive 162 00:06:03,079 --> 00:06:06,980 O sea, hace caso a las mayúsculas y minúsculas 163 00:06:06,980 --> 00:06:09,160 No es lo mismo escribir mi clase así 164 00:06:09,160 --> 00:06:11,040 Que escribir mi clase con la C minúscula 165 00:06:11,040 --> 00:06:13,079 No existe mi clase con la C minúscula 166 00:06:13,899 --> 00:06:14,860 ¿Está claro? 167 00:06:15,980 --> 00:06:16,279 Vale 168 00:06:16,279 --> 00:06:19,459 Luego, dentro de una clase normalmente 169 00:06:19,459 --> 00:06:20,540 Por un buen rato 170 00:06:20,540 --> 00:06:22,759 Nuestra estructura será 171 00:06:22,759 --> 00:06:25,819 Una lista de atributos 172 00:06:25,819 --> 00:06:29,120 Seguido de una lista de métodos 173 00:06:29,120 --> 00:06:29,860 ¿Vale? 174 00:06:29,860 --> 00:06:32,279 ¿Qué son los atributos y los métodos? 175 00:06:32,360 --> 00:06:36,199 Lo entenderemos mejor cuando lleguemos a la programación en el tataobjetos 176 00:06:36,199 --> 00:06:38,019 Pero para entendernos 177 00:06:38,019 --> 00:06:41,860 Los atributos son las características 178 00:06:41,860 --> 00:06:49,139 Los atributos, los elementos, los datos importantes para esta clase 179 00:06:49,139 --> 00:06:49,980 ¿Vale? 180 00:06:49,980 --> 00:06:51,699 Si esta es la clase alumno 181 00:06:51,699 --> 00:06:53,560 ¿Cuáles pueden ser sus atributos? 182 00:07:00,889 --> 00:07:03,490 Si la clase fuera alumno 183 00:07:03,490 --> 00:07:04,629 alumno, vale 184 00:07:04,629 --> 00:07:08,230 si en mi clase, es que en mi clase se refiere a este tipo de cosas 185 00:07:08,230 --> 00:07:09,449 es genérico 186 00:07:09,449 --> 00:07:11,110 pero pongamos la clase alumno 187 00:07:11,110 --> 00:07:13,089 vosotros queréis modelizar a un alumno 188 00:07:13,089 --> 00:07:15,810 ¿cuáles son los atributos, las características 189 00:07:15,810 --> 00:07:17,449 que pueden servirme 190 00:07:17,449 --> 00:07:20,110 en mi programa para modelizar 191 00:07:20,110 --> 00:07:20,730 a un alumno? 192 00:07:21,930 --> 00:07:24,189 su nombre, apellido 193 00:07:24,189 --> 00:07:26,250 DNI 194 00:07:26,250 --> 00:07:29,589 dirección 195 00:07:29,589 --> 00:07:30,329 donde vive 196 00:07:30,329 --> 00:07:33,790 sus notas 197 00:07:33,790 --> 00:07:34,829 no lo sé, vale 198 00:07:34,829 --> 00:07:38,149 Pero la información que me servirá para el alumno 199 00:07:38,149 --> 00:07:39,589 Estará aquí, dos datos 200 00:07:39,589 --> 00:07:40,449 ¿Vale? 201 00:07:40,870 --> 00:07:42,750 Si esto fuera la clase triángulo 202 00:07:42,750 --> 00:07:43,829 ¿Aquí qué podría poner? 203 00:07:45,750 --> 00:07:47,529 Lado 1, lado 2, lado 3 204 00:07:47,529 --> 00:07:48,970 Por ejemplo 205 00:07:48,970 --> 00:07:49,470 ¿Vale? 206 00:07:49,889 --> 00:07:52,389 Y a lo mejor ángulo 1, ángulo 2 207 00:07:52,389 --> 00:07:53,889 No lo sé, los ángulos que necesito 208 00:07:53,889 --> 00:07:54,449 No tengo idea 209 00:07:54,449 --> 00:07:56,430 Si esto fuera la clase cuadrado 210 00:07:56,430 --> 00:07:58,089 ¿Aquí qué me necesitaría? 211 00:08:01,079 --> 00:08:01,519 Lado 212 00:08:01,519 --> 00:08:03,000 Y con lado ya tengo todo 213 00:08:03,000 --> 00:08:05,279 Lo que tú me digas lado del cuadrado 214 00:08:05,279 --> 00:08:06,660 Pues ya tengo mucha información 215 00:08:06,660 --> 00:08:07,019 ¿Vale? 216 00:08:08,100 --> 00:08:10,100 Y esta es la información, los datos 217 00:08:10,100 --> 00:08:12,819 Relacionado con este objeto 218 00:08:12,819 --> 00:08:13,980 Que estoy trabajando 219 00:08:13,980 --> 00:08:15,319 Pero ahora no estamos trabajando objeto 220 00:08:15,319 --> 00:08:17,959 Pero todas las variables que voy a utilizar 221 00:08:17,959 --> 00:08:20,420 Las tendré por aquí, en mi clase 222 00:08:20,420 --> 00:08:23,540 Los métodos 223 00:08:23,540 --> 00:08:26,459 Son como se llaman en Java 224 00:08:26,459 --> 00:08:27,500 Las funciones 225 00:08:27,500 --> 00:08:29,420 O sea, lo que puedo hacer 226 00:08:29,420 --> 00:08:31,079 Con estos métodos 227 00:08:31,079 --> 00:08:32,100 Con estos datos 228 00:08:32,100 --> 00:08:34,659 Yo tengo los datos, los atributos 229 00:08:34,659 --> 00:08:36,600 Allí, rellenados 230 00:08:36,600 --> 00:08:38,559 De alguna forma, ya veremos como se hace 231 00:08:38,559 --> 00:08:40,799 ¿Qué puedo hacer con estos datos? 232 00:08:41,340 --> 00:08:42,179 Por ejemplo 233 00:08:42,179 --> 00:08:44,220 ¿Qué puedo hacer en la clase alumno? 234 00:08:44,799 --> 00:08:45,960 Por ejemplo, puedo decir 235 00:08:45,960 --> 00:08:47,500 Preséntate alumno 236 00:08:47,500 --> 00:08:50,000 Entonces habrá un método, preséntate alumno 237 00:08:50,000 --> 00:08:51,580 Que escribirá en pantalla 238 00:08:51,580 --> 00:08:52,759 Hola, me llamo 239 00:08:52,759 --> 00:08:55,399 Y sacará de sus atributos como se llama 240 00:08:55,399 --> 00:08:56,659 Y vivo 241 00:08:56,659 --> 00:08:59,159 Y sacará de sus atributos su dirección 242 00:08:59,159 --> 00:09:02,690 ¿Sí? 243 00:09:03,990 --> 00:09:09,149 La clase cuadrado, pues aquí tengo lado y aquí tendré como método calcular área. 244 00:09:09,649 --> 00:09:10,809 ¿Qué hará calcular área? 245 00:09:10,970 --> 00:09:16,389 Irá a pillar en los atributos su lado, para saber cuánto es grande, y hará lado al cuadrado. 246 00:09:17,409 --> 00:09:20,769 Si yo busco el otro método, que es el calcular perímetro, 247 00:09:21,230 --> 00:09:25,490 pues lo que hará el cuadrado es ir a buscar cuál es su lado y lo multiplicará por 4. 248 00:09:28,509 --> 00:09:29,309 ¿Se entiende más o menos? 249 00:09:30,309 --> 00:09:34,470 Entonces, por ahora no me interesa que sepáis programar orientado a objetos, 250 00:09:34,470 --> 00:09:37,529 Me interesa que la estructura de una clase suele ser así 251 00:09:37,529 --> 00:09:39,649 Defino la clase 252 00:09:39,649 --> 00:09:41,549 Tengo las variables 253 00:09:41,549 --> 00:09:42,889 Tengo los atributos 254 00:09:42,889 --> 00:09:44,149 Tengo las características 255 00:09:44,149 --> 00:09:46,149 Que voy a utilizar en esta clase 256 00:09:46,149 --> 00:09:47,649 Tengo las funciones 257 00:09:47,649 --> 00:09:48,909 Tengo los métodos 258 00:09:48,909 --> 00:09:51,629 Que se utilizan en esta clase 259 00:09:51,629 --> 00:09:58,379 Si paso desde aquí 260 00:09:58,379 --> 00:09:59,519 Desde esta cosa aquí 261 00:09:59,519 --> 00:10:02,419 A algo de código 262 00:10:02,419 --> 00:10:04,340 La estructura 263 00:10:04,340 --> 00:10:06,379 La misma estructura sería algo así 264 00:10:06,379 --> 00:10:08,580 public clase mi clase 265 00:10:08,580 --> 00:10:10,480 esto define que estoy creando 266 00:10:10,480 --> 00:10:12,539 la clase mi clase, nosotros hemos creado 267 00:10:12,539 --> 00:10:14,779 la clase lo, esto podría ser 268 00:10:14,779 --> 00:10:16,080 public clase alumno 269 00:10:16,080 --> 00:10:17,840 public clase cuadrado 270 00:10:17,840 --> 00:10:21,039 y veo que se abre una paréntesis 271 00:10:21,039 --> 00:10:21,539 aquí 272 00:10:21,539 --> 00:10:24,019 aquí 273 00:10:24,019 --> 00:10:26,159 y se cierra al final del todo 274 00:10:26,159 --> 00:10:27,559 todo esto 275 00:10:27,559 --> 00:10:29,960 es mi clase 276 00:10:29,960 --> 00:10:32,360 ¿entienden? 277 00:10:34,100 --> 00:10:34,740 dentro 278 00:10:34,740 --> 00:10:36,679 tengo una serie de atributos 279 00:10:36,679 --> 00:10:39,559 ¿qué es esta cosa aquí? no lo sé, no lo hemos visto todavía 280 00:10:39,559 --> 00:10:41,419 ¿vale? pero aquí tendré 281 00:10:41,419 --> 00:10:43,620 no sé qué atributo 1 282 00:10:43,620 --> 00:10:45,019 no sé qué atributo 2 283 00:10:45,019 --> 00:10:46,279 no sé qué atributo 3 284 00:10:46,279 --> 00:10:49,279 ¿vale? nosotros, en el caso del alumno, tendré 285 00:10:49,279 --> 00:10:50,820 string nombre 286 00:10:50,820 --> 00:10:52,600 string dirección 287 00:10:52,600 --> 00:10:54,379 int edad 288 00:10:54,379 --> 00:10:56,899 ¿vale? ¿qué es esto string int? todavía no lo sabemos 289 00:10:56,899 --> 00:10:57,960 lo veremos, ¿vale? 290 00:10:58,340 --> 00:11:01,259 pero aquí tendré la definición de lo que necesito 291 00:11:01,259 --> 00:11:02,860 dirección 292 00:11:02,860 --> 00:11:04,700 nombre, edad 293 00:11:04,700 --> 00:11:05,440 lo que sea 294 00:11:05,440 --> 00:11:08,639 y luego empiezan los varios métodos 295 00:11:08,639 --> 00:11:10,519 por ejemplo public void 296 00:11:10,519 --> 00:11:12,539 met uno sería el método uno 297 00:11:12,539 --> 00:11:14,179 para mi podría ser calcula área 298 00:11:14,179 --> 00:11:16,039 entonces public void calcula área 299 00:11:16,039 --> 00:11:17,120 o lo que sea 300 00:11:17,120 --> 00:11:20,600 un método que nosotros conocemos 301 00:11:20,600 --> 00:11:21,940 porque ya lo hemos visto 302 00:11:21,940 --> 00:11:22,860 es esto 303 00:11:22,860 --> 00:11:26,440 el método public static void main 304 00:11:26,440 --> 00:11:27,519 string args 305 00:11:27,519 --> 00:11:29,220 si, os acordáis 306 00:11:29,220 --> 00:11:31,220 es un método especial 307 00:11:31,220 --> 00:11:33,299 que no es un método cualquiera 308 00:11:33,299 --> 00:11:34,879 Pero es el método que me dice 309 00:11:34,879 --> 00:11:37,659 De dónde empieza mi programa 310 00:11:37,659 --> 00:11:39,480 Cuando yo le paso 311 00:11:39,480 --> 00:11:41,740 Este código aquí lo compilo 312 00:11:41,740 --> 00:11:43,539 Se transforma en punto clase 313 00:11:43,539 --> 00:11:45,360 En bytecode, vale, fenomenal 314 00:11:45,360 --> 00:11:47,779 Y a este punto, este punto clase 315 00:11:47,779 --> 00:11:49,360 Se lo paso a la Java Lector Machine 316 00:11:49,360 --> 00:11:51,580 La Java Lector Machine tiene que saber 317 00:11:51,580 --> 00:11:53,240 De dónde empieza 318 00:11:53,240 --> 00:11:55,600 El programa, y si yo no se lo digo 319 00:11:55,600 --> 00:11:57,779 Él me dirá, este programa no se puede empezar 320 00:11:57,779 --> 00:11:58,919 Porque no sé de dónde 321 00:11:58,919 --> 00:12:01,460 ¿Cómo le digo si empieza de aquí? 322 00:12:01,460 --> 00:12:03,059 Creando el método main 323 00:12:03,059 --> 00:12:04,299 El método principal 324 00:12:04,299 --> 00:12:07,320 El método main es el punto de acceso a mi trabajo 325 00:12:07,320 --> 00:12:10,440 Y luego desde aquí podré llamar otros métodos 326 00:12:10,440 --> 00:12:11,539 Llamar otra clase 327 00:12:11,539 --> 00:12:12,659 Crear variables 328 00:12:12,659 --> 00:12:14,559 Hacer todo lo que se pueda hacer en una programación 329 00:12:14,559 --> 00:12:17,779 Pero en cada programa tiene que haber un punto de arranque 330 00:12:17,779 --> 00:12:19,399 Si 331 00:12:19,399 --> 00:12:30,840 El método 2 iría aquí 332 00:12:30,840 --> 00:12:33,159 Cuantos métodos quiero 333 00:12:33,159 --> 00:12:36,600 Luego no sabemos declarar métodos 334 00:12:36,600 --> 00:12:37,840 No sabemos declarar variables 335 00:12:37,840 --> 00:12:40,460 Esto es solo muy, muy a alto nivel 336 00:12:40,460 --> 00:12:42,779 Para entender la estructura más o menos 337 00:12:42,779 --> 00:12:43,139 ¿Vale? 338 00:12:43,259 --> 00:12:45,820 La que llegaremos a hacer en un mes 339 00:12:45,820 --> 00:12:47,500 De programación o cosas por el estilo 340 00:12:47,500 --> 00:12:49,480 Cuando empezaremos con la clase de objetos 341 00:12:49,480 --> 00:12:51,320 Las haremos así la primera 342 00:12:51,320 --> 00:12:54,720 ¿Vale? Es un poquito para empezar por algún lado 343 00:12:54,720 --> 00:12:56,159 ¿Dudas? 344 00:12:57,700 --> 00:12:57,919 ¿Sí? 345 00:12:58,559 --> 00:12:59,120 Sí 346 00:12:59,120 --> 00:13:12,350 Es el punto de acceso 347 00:13:12,350 --> 00:13:13,850 La entrada a mi programa 348 00:13:13,850 --> 00:13:14,750 Si quieres decir 349 00:13:14,750 --> 00:13:16,009 La entrada como 350 00:13:16,009 --> 00:13:19,250 En el sentido de entrada, proceso y salida 351 00:13:19,250 --> 00:13:20,570 De un algoritmo, pues 352 00:13:20,570 --> 00:13:22,529 Por algún lado estará también 353 00:13:22,529 --> 00:13:24,169 ¿Vale? Ya lo veremos 354 00:13:24,169 --> 00:13:27,230 Ya veremos como hacemos las entradas, la salida y el proceso 355 00:13:27,230 --> 00:13:29,250 ¿Vale? Por ahora nosotros sabemos 356 00:13:29,250 --> 00:13:31,230 Que podemos crear 357 00:13:31,230 --> 00:13:33,129 Varios atributos, podemos crear 358 00:13:33,129 --> 00:13:34,690 Varios métodos, no sabemos como 359 00:13:34,690 --> 00:13:37,129 ¿Vale? Y que hay un método especial 360 00:13:37,129 --> 00:13:38,929 Que es el método main, que es el que usaremos 361 00:13:38,929 --> 00:13:41,049 Nosotros al principio, porque mientras 362 00:13:41,049 --> 00:13:43,049 Que no sepamos un poquito de como 363 00:13:43,049 --> 00:13:44,850 van las cosas, no usaremos ni otros 364 00:13:44,850 --> 00:13:46,690 métodos y no tenemos ni siquiera atributos 365 00:13:46,690 --> 00:13:48,769 si piensas en lo que hemos hecho 366 00:13:48,769 --> 00:13:50,950 y ahora lo veremos, no hemos utilizado 367 00:13:50,950 --> 00:13:52,169 atributos, nosotros en 368 00:13:52,169 --> 00:13:54,269 en el programa 369 00:13:54,269 --> 00:13:55,990 que hemos hecho, no hay atributos 370 00:13:55,990 --> 00:13:56,850 hay solo el método mail 371 00:13:56,850 --> 00:14:03,820 este, es otro método 372 00:14:03,820 --> 00:14:05,340 esto sería como este de aquí 373 00:14:05,340 --> 00:14:07,820 ¿si? y este de aquí 374 00:14:07,820 --> 00:14:08,940 son los puntitos 375 00:14:08,940 --> 00:14:11,580 y este de aquí es el método mail 376 00:14:11,580 --> 00:14:12,899 por ejemplo 377 00:14:12,899 --> 00:14:15,600 pero tranquilos que 378 00:14:15,600 --> 00:14:16,759 A esto llegaremos 379 00:14:16,759 --> 00:14:18,960 Es solo para que entendáis 380 00:14:18,960 --> 00:14:20,500 Que hay una estructura básica 381 00:14:20,500 --> 00:14:22,299 Lo que si ahora me importa 382 00:14:22,299 --> 00:14:24,620 Es que en mi clase punto java 383 00:14:24,620 --> 00:14:25,639 Va la clase mi clase 384 00:14:25,639 --> 00:14:28,799 No puedo poner en mi clase punto java 385 00:14:28,799 --> 00:14:30,600 Public class gato 386 00:14:30,600 --> 00:14:31,860 Me va a dar un error 387 00:14:31,860 --> 00:14:38,120 Entonces aquí en los apuntes 388 00:14:38,120 --> 00:14:40,240 Os explica cada uno de estos 389 00:14:40,240 --> 00:14:42,360 Elementos 390 00:14:42,360 --> 00:14:43,840 Que son 391 00:14:43,840 --> 00:14:46,480 Entonces empieza con public class mi clase 392 00:14:46,480 --> 00:14:48,720 Que quiere decir esta frase aquí 393 00:14:48,720 --> 00:14:49,820 Esta sentencia 394 00:14:49,820 --> 00:14:52,440 Está diciendo que todo lo que voy a crear aquí 395 00:14:52,440 --> 00:14:54,100 Es la clase mi clase 396 00:14:54,100 --> 00:14:56,539 Es la clase alumno, es la clase triángulo 397 00:14:56,539 --> 00:14:57,320 Es darle un nombre 398 00:14:57,320 --> 00:14:59,179 Este programita que estoy creando 399 00:14:59,179 --> 00:15:02,740 Tiene este significado 400 00:15:02,740 --> 00:15:03,419 En cierto sentido 401 00:15:03,419 --> 00:15:04,840 Estoy modelizando un alumno 402 00:15:04,840 --> 00:15:06,379 Estoy modelizando un triángulo 403 00:15:06,379 --> 00:15:07,700 Estoy modelizando la geometría 404 00:15:07,700 --> 00:15:11,200 Public class y un nombre del programa 405 00:15:11,200 --> 00:15:12,320 Que lo estoy creando yo 406 00:15:12,320 --> 00:15:15,600 Todo lo que está entre el primer 407 00:15:15,600 --> 00:15:17,100 llave, ¿no? esto 408 00:15:17,100 --> 00:15:19,740 y la última llave, o sea, entre esta de aquí 409 00:15:19,740 --> 00:15:21,279 y esta de aquí, es 410 00:15:21,279 --> 00:15:22,860 esta clase que estoy creando 411 00:15:22,860 --> 00:15:25,299 ¿sí? entonces la clase 412 00:15:25,299 --> 00:15:27,860 tiene una definición 413 00:15:27,860 --> 00:15:29,539 he definido qué clase es 414 00:15:29,539 --> 00:15:31,700 cómo se llama, y luego un bloque 415 00:15:31,700 --> 00:15:33,759 ¿vale? paréntesis hasta 416 00:15:33,759 --> 00:15:35,480 paréntesis, este de aquí, llave hasta llave 417 00:15:35,480 --> 00:15:37,759 se llama un bloque, un bloque de código 418 00:15:37,759 --> 00:15:39,740 ¿sí? y en este 419 00:15:39,740 --> 00:15:41,279 bloque lo que haré es 420 00:15:41,279 --> 00:15:43,299 desarrollar esa clase, decir 421 00:15:43,299 --> 00:15:45,860 Que hace esta clase, sus atributos, sus métodos 422 00:15:45,860 --> 00:15:47,080 Lo que sea 423 00:15:47,080 --> 00:15:48,460 ¿Sí? 424 00:15:51,110 --> 00:15:53,629 Después están estas definiciones de aquí 425 00:15:53,629 --> 00:15:55,990 Que estas serán variables o constantes 426 00:15:55,990 --> 00:15:57,009 Lo veremos en un futuro 427 00:15:57,009 --> 00:15:57,570 ¿Vale? 428 00:15:58,289 --> 00:16:01,029 Son las características propias de la clase 429 00:16:01,029 --> 00:16:02,710 Son lo que define la clase 430 00:16:02,710 --> 00:16:04,970 Un alumno es definido por su nombre, su DNI 431 00:16:04,970 --> 00:16:07,509 Y su dirección 432 00:16:07,509 --> 00:16:08,149 ¿Qué sé yo? 433 00:16:08,590 --> 00:16:11,429 Un avión 434 00:16:11,429 --> 00:16:13,029 Está definido por su número 435 00:16:13,029 --> 00:16:15,429 definido por su número de matrícula, la velocidad 436 00:16:15,429 --> 00:16:17,610 máxima, el color exterior 437 00:16:17,610 --> 00:16:18,970 y el número de asientos 438 00:16:18,970 --> 00:16:21,850 aquí voy definiendo 439 00:16:21,850 --> 00:16:23,409 las características 440 00:16:23,409 --> 00:16:24,669 que caracterizan 441 00:16:24,669 --> 00:16:26,129 mi clase 442 00:16:26,129 --> 00:16:28,730 sea todo lo que sea mi clase 443 00:16:28,730 --> 00:16:31,330 cuando yo creo una clase nueva 444 00:16:31,330 --> 00:16:33,769 tendré que estar, tener un poquito de 445 00:16:33,769 --> 00:16:35,450 prestar atención a 446 00:16:35,450 --> 00:16:36,470 definir 447 00:16:36,470 --> 00:16:39,309 las características que necesito 448 00:16:39,309 --> 00:16:41,009 si yo creo una clase alumno 449 00:16:41,009 --> 00:16:42,750 y se me olvida poner nombre 450 00:16:42,750 --> 00:16:45,509 Y luego cuando quiero utilizar esta clase 451 00:16:45,509 --> 00:16:47,450 Tengo que escribir el nombre del alumno 452 00:16:47,450 --> 00:16:48,330 No tengo ese dato 453 00:16:48,330 --> 00:16:50,149 Entonces tendré que volver atrás 454 00:16:50,149 --> 00:16:52,809 Ponerlo otra vez y ver que queda 455 00:16:52,809 --> 00:16:57,690 O sea que hay una parte inicial 456 00:16:57,690 --> 00:17:01,590 En el que tengo que pensar en la clase que quiero hacer 457 00:17:01,590 --> 00:17:05,730 Y intentar poner todos los atributos necesarios para esa clase 458 00:17:05,730 --> 00:17:09,910 Programación no es picar código 459 00:17:09,910 --> 00:17:11,230 Pero es pensar 460 00:17:11,230 --> 00:17:13,730 La parte difícil es pensar antes 461 00:17:13,730 --> 00:17:14,730 ¿Qué voy a hacer? 462 00:17:15,009 --> 00:17:15,750 Y luego lo hago 463 00:17:15,750 --> 00:17:19,509 Por ejemplo, en una clase persona 464 00:17:19,509 --> 00:17:21,289 Si yo estuviera haciendo public 465 00:17:21,289 --> 00:17:23,869 Tras persona, ¿qué atributos podría poner? 466 00:17:24,269 --> 00:17:25,269 Pues aquí hace el ejemplo 467 00:17:25,269 --> 00:17:26,269 Nombre y edad 468 00:17:26,269 --> 00:17:29,190 De una persona me interesa su nombre y su edad 469 00:17:29,190 --> 00:17:31,630 Y si la clase fuera 470 00:17:31,630 --> 00:17:32,950 Libro 471 00:17:32,950 --> 00:17:35,190 A lo mejor en una clase libro me interesa 472 00:17:35,190 --> 00:17:37,369 El título del libro, la autor del libro 473 00:17:37,369 --> 00:17:38,529 Y cuántas páginas tiene 474 00:17:38,529 --> 00:17:42,829 Y editorial, y género, y no lo sé 475 00:17:42,829 --> 00:17:44,029 Lo que haga falta 476 00:17:44,029 --> 00:17:46,390 También depende del programa que voy a hacer 477 00:17:46,390 --> 00:17:48,630 Si el programa es una biblioteca 478 00:17:48,630 --> 00:17:51,250 Pues a lo mejor necesitaré algunos datos 479 00:17:51,250 --> 00:17:54,390 Que es una cosa distinta de si el programa es para 480 00:17:54,390 --> 00:18:00,650 Que se yo, para venta de libros en un instituto 481 00:18:00,650 --> 00:18:02,430 O sea, no lo sé 482 00:18:02,430 --> 00:18:05,930 A lo mejor hay datos que en una biblioteca son útiles 483 00:18:05,930 --> 00:18:07,130 Y que en el otro no 484 00:18:07,130 --> 00:18:10,210 Por ejemplo, identificar un propio libro 485 00:18:10,210 --> 00:18:11,910 Una copia concreta del libro 486 00:18:11,910 --> 00:18:13,390 En una biblioteca es útil 487 00:18:13,390 --> 00:18:15,049 Al venderla a los alumnos 488 00:18:15,049 --> 00:18:16,069 A lo mejor no, no lo sé 489 00:18:16,069 --> 00:18:17,230 Digo así para 490 00:18:17,230 --> 00:18:24,019 Hacerme un ejemplo 491 00:18:24,019 --> 00:18:25,680 Inventamos una clase 492 00:18:25,680 --> 00:18:34,470 Nadie 493 00:18:34,470 --> 00:18:36,750 Clase 494 00:18:36,750 --> 00:18:38,650 Perro 495 00:18:38,650 --> 00:18:41,269 ¿Qué atributos tiene la clase perro? 496 00:18:42,710 --> 00:18:43,349 ¿Abaja? 497 00:18:44,890 --> 00:18:45,569 ¿Edad? 498 00:18:47,049 --> 00:18:47,869 ¿Nombre de perro? 499 00:18:49,390 --> 00:18:50,349 ¿Fanero de perro? 500 00:18:51,630 --> 00:18:52,690 ¿Nacionalidad de perro? 501 00:18:53,549 --> 00:18:56,529 Si te interesa, pienso yo para decirte que no. 502 00:18:57,109 --> 00:19:00,210 Depende de qué estás haciendo, por qué usas esta clase de perro. 503 00:19:00,490 --> 00:19:01,809 ¿Qué vas a hacer con eso? 504 00:19:02,230 --> 00:19:06,390 Si a lo mejor te necesita la nacionalidad por alguna razón, pues esto te lo aportas. 505 00:19:08,289 --> 00:19:10,630 Otro ejemplo, clase coche. 506 00:19:14,180 --> 00:19:17,900 Marca el coche, modelo, matrícula. 507 00:19:19,319 --> 00:19:25,039 año de producción, que se yo 508 00:19:25,039 --> 00:19:26,940 tened en cuenta, pensad en coche 509 00:19:26,940 --> 00:19:28,359 si yo soy 510 00:19:28,359 --> 00:19:31,059 un 511 00:19:31,059 --> 00:19:32,759 policía 512 00:19:32,759 --> 00:19:34,400 que hago un 513 00:19:34,400 --> 00:19:37,220 programa que tenga que ver 514 00:19:37,220 --> 00:19:39,380 con un coche, a lo mejor me interesan 515 00:19:39,380 --> 00:19:41,339 cosas como la matrícula 516 00:19:41,339 --> 00:19:43,480 del coche, el color del coche 517 00:19:43,480 --> 00:19:44,700 el conductor 518 00:19:44,700 --> 00:19:46,920 asociado con ese coche, vale 519 00:19:46,920 --> 00:19:48,680 esas son las cosas que me interesan 520 00:19:48,680 --> 00:19:50,720 ahora, si yo en vez de ser un policía 521 00:19:50,720 --> 00:19:52,220 Soy un productor de coches 522 00:19:52,220 --> 00:19:54,700 Alguien que produce coches 523 00:19:54,700 --> 00:19:56,839 Me interesa saber la matrícula 524 00:19:56,839 --> 00:19:58,140 No, no soy yo quien pone la matrícula 525 00:19:58,140 --> 00:20:01,299 A mí me interesan los datos como velocidad máxima 526 00:20:01,299 --> 00:20:03,259 Cilindrada 527 00:20:03,259 --> 00:20:04,299 Cilindrada 528 00:20:04,299 --> 00:20:06,079 Cilindrada 529 00:20:06,079 --> 00:20:07,500 Y cosas por el estilo 530 00:20:07,500 --> 00:20:10,859 O sea, dependiendo 531 00:20:10,859 --> 00:20:12,980 De por qué estoy haciendo este coche 532 00:20:12,980 --> 00:20:14,519 Tendré atributos otros 533 00:20:14,519 --> 00:20:15,519 ¿Dudas? 534 00:20:21,200 --> 00:20:23,059 No, es que esto es 535 00:20:23,059 --> 00:20:25,420 Atr1, atr2, atr3 536 00:20:25,420 --> 00:20:27,299 Hasta aquel número, el número n 537 00:20:27,299 --> 00:20:28,000 Atrn 538 00:20:28,000 --> 00:20:29,279 ¿Sí? 539 00:20:32,410 --> 00:20:34,710 Vale, la parte de esta de aquí 540 00:20:34,710 --> 00:20:35,849 Que es esta, ¿vale? 541 00:20:36,029 --> 00:20:37,730 Esta de aquí es un método, ¿vale? 542 00:20:37,789 --> 00:20:41,309 Un método es, ¿qué puedo hacer con esta clase? 543 00:20:41,509 --> 00:20:42,529 ¿Vale? Ok, muy bien 544 00:20:42,529 --> 00:20:44,430 Le hemos dado una serie de 545 00:20:44,430 --> 00:20:46,490 Definido una serie de atributos 546 00:20:46,490 --> 00:20:47,470 Una serie de características 547 00:20:47,470 --> 00:20:50,710 ¿Cuáles son las funciones de esta clase? 548 00:20:50,829 --> 00:20:53,029 ¿Qué puede hacer? ¿Cuál es su comportamiento? 549 00:20:53,569 --> 00:20:53,769 ¿Vale? 550 00:20:53,769 --> 00:20:55,009 Y por ejemplo 551 00:20:55,009 --> 00:20:56,789 En la clase persona 552 00:20:56,789 --> 00:20:58,730 Que es un ejemplo que hemos hecho antes 553 00:20:58,730 --> 00:20:59,910 Que tenía nombre y edad 554 00:20:59,910 --> 00:21:02,529 Podría implementar un método cumpleaños 555 00:21:02,529 --> 00:21:05,210 Que cuando lanzo, cuando digo ejecutar 556 00:21:05,210 --> 00:21:06,210 Con el método cumpleaños 557 00:21:06,210 --> 00:21:08,589 Aumenta uno a su edad 558 00:21:08,589 --> 00:21:11,049 Entonces cada vez que llegue 559 00:21:11,049 --> 00:21:12,450 El cumpleaños de esta persona 560 00:21:12,450 --> 00:21:14,509 Yo llamaré el método cumpleaños 561 00:21:14,509 --> 00:21:16,490 Y su edad se actualizará 562 00:21:16,490 --> 00:21:18,369 A la edad que tenía antes más uno 563 00:21:18,369 --> 00:21:20,769 ¿Sí? 564 00:21:21,569 --> 00:21:22,109 Por ejemplo 565 00:21:22,109 --> 00:21:23,789 Si es lo que me interesa 566 00:21:23,789 --> 00:21:26,430 ¿Me interesa a mi la función cumpleaños 567 00:21:26,430 --> 00:21:29,109 Si estoy hablando de alumnos 568 00:21:29,109 --> 00:21:29,670 Por ejemplo 569 00:21:29,670 --> 00:21:31,190 Pues a lo mejor no 570 00:21:31,190 --> 00:21:32,990 ¿Vale? O si 571 00:21:32,990 --> 00:21:36,569 O a lo mejor me interesa más bien 572 00:21:36,569 --> 00:21:38,009 Calcular la edad 573 00:21:38,009 --> 00:21:39,069 A partir de 574 00:21:39,069 --> 00:21:40,369 Tendré como 575 00:21:40,369 --> 00:21:44,230 Puedo tener como atributo fecha de nacimiento 576 00:21:44,230 --> 00:21:45,630 Y que tenga un método de 577 00:21:45,630 --> 00:21:46,730 Calculame que edad tiene 578 00:21:46,730 --> 00:21:48,529 Eso puede ser interesante 579 00:21:48,529 --> 00:21:52,009 De cumpleaños y que cada vez que cumplís los años 580 00:21:52,009 --> 00:21:54,490 Si yo tengo que ir a una base de datos a ejecutar 581 00:21:54,490 --> 00:21:56,289 Cumpleaños, pues a lo mejor no me interesa 582 00:21:56,289 --> 00:21:57,750 No me interesa a mí, pero no lo sé 583 00:21:57,750 --> 00:21:59,430 Depende de que 584 00:21:59,430 --> 00:22:01,430 De cómo lo gestionáis vosotros, ¿vale? 585 00:22:02,289 --> 00:22:04,710 De lo que queréis hacer, de por qué estamos haciendo este programa 586 00:22:04,710 --> 00:22:06,269 La clase libro 587 00:22:06,269 --> 00:22:08,670 ¿Vale? La clase libro tenía varias cosas 588 00:22:08,670 --> 00:22:10,369 Allí, varios atributos 589 00:22:10,369 --> 00:22:12,190 Pues a lo mejor tengo un método 590 00:22:12,190 --> 00:22:14,390 Leer, asociado al libro 591 00:22:14,390 --> 00:22:16,250 Que cuando lo ejecuto, pues me permite 592 00:22:16,250 --> 00:22:18,190 Leer el libro, me permite leer 593 00:22:18,190 --> 00:22:20,269 El contenido de ese libro, que estará almacenado 594 00:22:20,269 --> 00:22:21,769 Por algún lado, no lo sé 595 00:22:21,769 --> 00:22:27,549 Y la clase mi clase 596 00:22:27,549 --> 00:22:29,549 Con este código de aquí 597 00:22:29,549 --> 00:22:34,970 ¿Cómo se llama el método aquí? 598 00:22:35,089 --> 00:22:35,869 Pues se llama met1 599 00:22:35,869 --> 00:22:37,230 Es un método que no tiene que ver 600 00:22:37,230 --> 00:22:38,609 Es todo abstracto 601 00:22:38,609 --> 00:22:40,650 Pero este es un método met1 602 00:22:40,650 --> 00:22:42,910 Que hará lo que está en este bloque 603 00:22:42,910 --> 00:22:43,549 ¿Vale? 604 00:22:43,589 --> 00:22:44,650 Veis que hay otro bloque 605 00:22:44,650 --> 00:22:45,789 Paréntesis paréntesis 606 00:22:45,789 --> 00:22:46,450 Llave, llave 607 00:22:46,450 --> 00:22:48,029 Este es otro bloque de código 608 00:22:48,029 --> 00:22:50,049 He definido que hoy en día 609 00:22:50,049 --> 00:22:51,549 Voy a hacer el método 1 610 00:22:51,549 --> 00:22:52,210 Met1 611 00:22:52,210 --> 00:22:52,970 ¿Vale? 612 00:22:52,970 --> 00:22:54,930 Y esto es lo que hace Metum 613 00:22:54,930 --> 00:22:57,549 Ya veremos como lo relleno 614 00:22:57,549 --> 00:23:01,170 Claro, esta paréntesis de aquí 615 00:23:01,170 --> 00:23:03,269 Es como se escribe 616 00:23:03,269 --> 00:23:05,309 Aquí pondré los parámetros 617 00:23:05,309 --> 00:23:06,190 ¿Vale? 618 00:23:06,509 --> 00:23:07,849 Pero como sabemos que es un parámetro 619 00:23:07,849 --> 00:23:10,049 Pero te acuerdas main 620 00:23:10,049 --> 00:23:12,049 Te acuerdas que aquí dentro ponías 621 00:23:12,049 --> 00:23:13,769 Paréntesis, paréntesis, paréntesis 622 00:23:13,769 --> 00:23:16,230 Porque tiene ese parámetro 623 00:23:16,230 --> 00:23:17,269 ¿Vale? 624 00:23:17,609 --> 00:23:20,089 No sabemos que es, por ahora no lo sé 625 00:23:20,089 --> 00:23:22,109 Este es simplemente que la sintaxis 626 00:23:22,109 --> 00:23:24,009 requiere estas dos paréntesis para que luego 627 00:23:24,009 --> 00:23:25,730 podré poner aquí los parámetros 628 00:23:25,730 --> 00:23:28,049 de este método y si es que 629 00:23:28,049 --> 00:23:29,589 el método depende de algunos 630 00:23:29,589 --> 00:23:31,690 valores que yo le doy 631 00:23:31,690 --> 00:23:33,609 pues entonces tendré que ponerlo aquí 632 00:23:33,609 --> 00:23:35,430 si no depende de nada pues esto de nuevo 633 00:23:35,430 --> 00:23:38,950 y 634 00:23:38,950 --> 00:23:42,029 finalmente está el método 635 00:23:42,029 --> 00:23:43,829 main ¿vale? que es este 636 00:23:43,829 --> 00:23:44,930 método especial 637 00:23:44,930 --> 00:23:47,569 que puede no estar 638 00:23:47,569 --> 00:23:49,829 nosotros en un futuro haremos clases donde 639 00:23:49,829 --> 00:23:51,150 no hay main ¿vale? 640 00:23:51,150 --> 00:23:54,250 Pero si yo quiero ejecutar mi programa 641 00:23:54,250 --> 00:23:56,109 Necesito que mi programa 642 00:23:56,109 --> 00:23:58,309 Tenga un punto de acceso 643 00:23:58,309 --> 00:23:59,690 Tenga este método main 644 00:23:59,690 --> 00:24:01,490 Si yo hago mi programa 645 00:24:01,490 --> 00:24:02,309 Que hacemos ahora 646 00:24:02,309 --> 00:24:05,750 Calcula, recibe dos números y súmalos 647 00:24:05,750 --> 00:24:07,950 O dame un número y dime si es 648 00:24:07,950 --> 00:24:09,869 Par o impar 649 00:24:09,869 --> 00:24:12,069 Y no creo un main 650 00:24:12,069 --> 00:24:13,950 Pues cuando llegue a ejecutarlo 651 00:24:13,950 --> 00:24:15,450 Eclipse me dirá 652 00:24:15,450 --> 00:24:16,630 Mira, no hay 653 00:24:16,630 --> 00:24:19,750 Un punto donde puedo arrancar el programa 654 00:24:19,750 --> 00:24:20,970 Por lo tanto no lo hago 655 00:24:20,970 --> 00:24:27,210 No, puedes ponerlo donde te haga 656 00:24:27,210 --> 00:24:29,230 Lo puedes poner hasta antes de los atributos 657 00:24:29,230 --> 00:24:31,589 Normalmente 658 00:24:31,589 --> 00:24:33,450 ¿Vale? Normalmente 659 00:24:33,450 --> 00:24:35,730 Los atributos, o sea, declaro la clase 660 00:24:35,730 --> 00:24:37,750 Declaro los atributos de la clase 661 00:24:37,750 --> 00:24:39,029 Y empiezo con los métodos 662 00:24:39,029 --> 00:24:39,930 ¿Dónde va el main? 663 00:24:40,490 --> 00:24:44,250 Yo personalmente lo pondría o a principio o a final de los métodos 664 00:24:44,250 --> 00:24:45,390 Para que sepa dónde está 665 00:24:45,390 --> 00:24:46,049 Pero 666 00:24:46,049 --> 00:24:48,730 Eso no hay una regla clara 667 00:24:48,730 --> 00:24:50,210 No, lo tienen que poner siempre al final 668 00:24:50,210 --> 00:24:52,309 ¿Más dudas? 669 00:25:01,660 --> 00:25:02,799 al método 670 00:25:02,799 --> 00:25:05,539 el main es un método 671 00:25:05,539 --> 00:25:07,299 pero es un método especial 672 00:25:07,299 --> 00:25:09,859 ¿vale? tú puedes hacer todos los métodos 673 00:25:09,859 --> 00:25:12,059 que te da la gana, pero hay un método 674 00:25:12,059 --> 00:25:13,059 especial 675 00:25:13,059 --> 00:25:16,039 mágico, que es el método 676 00:25:16,039 --> 00:25:18,039 que me permite decir, oye mira, si buscas 677 00:25:18,039 --> 00:25:19,299 un punto de acceso a este 678 00:25:19,299 --> 00:25:21,500 programa, es esto 679 00:25:21,500 --> 00:25:24,279 si yo te paso, esto lo compilo 680 00:25:24,279 --> 00:25:25,319 en class, ¿vale? 681 00:25:25,759 --> 00:25:27,700 y lo paso a una gaveta machine 682 00:25:27,700 --> 00:25:29,900 ¿de dónde empieza la gaveta machine 683 00:25:29,900 --> 00:25:31,980 Interpretar, pues desde la primera 684 00:25:31,980 --> 00:25:33,500 Línea del método main 685 00:25:33,500 --> 00:25:35,759 Si no hay método main, me dirá 686 00:25:35,759 --> 00:25:38,079 Este de aquí no lo puedo interpretar 687 00:25:38,079 --> 00:25:39,480 Porque no sé por dónde empezar 688 00:25:39,480 --> 00:25:42,500 ¿Dudas? 689 00:25:46,190 --> 00:25:46,750 Vale 690 00:25:46,750 --> 00:25:50,789 ¿Os acordáis de esto? 691 00:25:54,440 --> 00:25:55,660 Esto es lo que hemos hecho 692 00:25:55,660 --> 00:25:57,140 Nosotros he ejecutado 693 00:25:57,140 --> 00:25:59,559 ¿Cómo se relaciona esto 694 00:25:59,559 --> 00:26:00,940 Con lo que acabamos de decir? 695 00:26:01,599 --> 00:26:03,299 Pues public class hola mundo 696 00:26:03,299 --> 00:26:05,200 Es el nombre de mi clase 697 00:26:05,200 --> 00:26:08,079 ¿En qué fichero me espero que esté este señor? 698 00:26:11,319 --> 00:26:12,660 holamundo.java 699 00:26:12,660 --> 00:26:13,559 ¿Vale? 700 00:26:13,779 --> 00:26:15,980 Con H mayúscula y M mayúscula 701 00:26:15,980 --> 00:26:16,740 ¿Sí? 702 00:26:17,920 --> 00:26:19,599 ¿Qué atributo tiene esta clase? 703 00:26:21,440 --> 00:26:22,079 Ningún 704 00:26:22,079 --> 00:26:23,380 ¿Vale? 705 00:26:23,720 --> 00:26:25,559 También porque si yo modelizo un coche 706 00:26:25,559 --> 00:26:27,859 Pues tiene sentido que tenga 707 00:26:27,859 --> 00:26:29,460 Hemos dicho su velocidad 708 00:26:29,460 --> 00:26:31,119 Su color, lo que sea 709 00:26:31,119 --> 00:26:33,240 Si voy a modelizar holamundo 710 00:26:33,240 --> 00:26:34,960 ¿Qué es holamundo? 711 00:26:34,960 --> 00:26:38,500 Aquí yo tengo objetos 712 00:26:38,500 --> 00:26:39,960 Tengo varios coches, sí 713 00:26:39,960 --> 00:26:41,799 Tengo varios solamundos, ¿qué es eso? 714 00:26:42,660 --> 00:26:44,279 ¿Vale? Entonces, esta es una clase 715 00:26:44,279 --> 00:26:45,599 De prueba para jugar 716 00:26:45,599 --> 00:26:47,680 Que no tiene atributos 717 00:26:47,680 --> 00:26:50,720 No tiene ningún atributo asociado con esa clase 718 00:26:50,720 --> 00:26:52,359 ¿Vale? Por lo tanto, no los pongo 719 00:26:52,359 --> 00:26:53,180 Aquí está fácil 720 00:26:53,180 --> 00:26:56,400 ¿Cuántos métodos tiene esta clase? 721 00:26:57,859 --> 00:26:58,380 Uno 722 00:26:58,380 --> 00:26:59,079 Uno solo 723 00:26:59,079 --> 00:27:02,000 ¿Podría tener más? Sí, podría tener más 724 00:27:02,000 --> 00:27:04,660 Pero como no me sirven, pues entonces 725 00:27:04,660 --> 00:27:06,640 Creo solo el método main 726 00:27:06,640 --> 00:27:08,359 Para dar un punto de acceso 727 00:27:08,359 --> 00:27:09,339 A esta cosa 728 00:27:09,339 --> 00:27:12,240 Os recuerdo que el método main va escrito así 729 00:27:12,240 --> 00:27:14,259 Con minúsculas y mayúsculas 730 00:27:14,259 --> 00:27:15,200 De esta forma 731 00:27:15,200 --> 00:27:16,819 Si no lo escribís así 732 00:27:16,819 --> 00:27:18,299 Cuando llegáis a arrancar 733 00:27:18,299 --> 00:27:19,259 Él os dirá 734 00:27:19,259 --> 00:27:20,339 Oye mira no existe 735 00:27:20,339 --> 00:27:22,660 Pongo una M mayúscula aquí 736 00:27:22,660 --> 00:27:25,599 No pongo estas dos paréntesis 737 00:27:25,599 --> 00:27:28,119 Llamo esto arg en vez que args 738 00:27:28,119 --> 00:27:29,480 Cuando arranco 739 00:27:29,480 --> 00:27:30,400 Pues me dirá 740 00:27:30,400 --> 00:27:31,660 Oye mira el name está 741 00:27:31,660 --> 00:28:04,380 Yo dentro del main 742 00:28:04,380 --> 00:28:06,940 Pongo las instrucciones que quiera que se pude 743 00:28:06,940 --> 00:28:08,799 Este es un método 744 00:28:08,799 --> 00:28:10,619 De la clase de la mundo 745 00:28:10,619 --> 00:28:11,980 Por algún lado está 746 00:28:11,980 --> 00:28:14,039 Public void print 747 00:28:14,039 --> 00:28:15,859 O public void system.org 748 00:28:15,859 --> 00:28:18,319 Esto es algo 749 00:28:18,319 --> 00:28:20,339 Mágico que está ahí fuera en una librería 750 00:28:20,339 --> 00:28:22,160 Es una instrucción 751 00:28:22,160 --> 00:28:24,380 Y es la primera instrucción 752 00:28:24,380 --> 00:28:26,500 Que yo ejecuto dentro del main 753 00:28:26,500 --> 00:28:27,359 ¿Vale? 754 00:28:27,839 --> 00:28:30,500 En realidad, println es un método 755 00:28:30,500 --> 00:28:31,440 ¿Vale? 756 00:28:31,720 --> 00:28:33,380 De la clase printstream 757 00:28:33,380 --> 00:28:35,220 Definida por alguien 758 00:28:35,220 --> 00:28:36,180 ¿Vale? 759 00:28:36,420 --> 00:28:37,700 Y yo la llamo desde aquí 760 00:28:37,700 --> 00:28:40,119 Pero todas estas cosas más adelante 761 00:28:40,119 --> 00:28:40,599 ¿Vale? 762 00:28:40,980 --> 00:28:43,440 Simplemente por ahora nosotros no entendemos por qué 763 00:28:43,440 --> 00:28:44,640 Pero entendemos que funciona 764 00:28:44,640 --> 00:28:45,839 Por lo tanto lo usamos 765 00:28:45,839 --> 00:28:48,539 ¿Dudas? 766 00:28:49,680 --> 00:28:53,779 Entonces, la idea es que si yo quiero hacer el programa más sencillo posible 767 00:28:53,779 --> 00:28:54,059 ¿Vale? 768 00:28:54,059 --> 00:28:56,559 El Hola Mundo, cualquier programa que vosotros 769 00:28:56,559 --> 00:28:58,460 Empeceréis, el primer programa 770 00:28:58,460 --> 00:29:00,660 Que vais a hacer es el Hello World 771 00:29:00,660 --> 00:29:02,480 El Hello World de cada lenguaje 772 00:29:02,480 --> 00:29:04,640 De programación es la base 773 00:29:04,640 --> 00:29:06,640 Mínima para hacer algo y que funcione algo 774 00:29:06,640 --> 00:29:08,200 ¿Vale? Pues esto es 775 00:29:08,200 --> 00:29:10,420 El programa más sencillo 776 00:29:10,420 --> 00:29:11,380 Que puedes hacer en Java 777 00:29:11,380 --> 00:29:13,059 Que es escribirte Hola 778 00:29:13,059 --> 00:29:16,740 Y para eso necesito 779 00:29:16,740 --> 00:29:17,819 Definir la clase 780 00:29:17,819 --> 00:29:20,559 Definir un punto de acceso a mi 781 00:29:20,559 --> 00:29:22,359 Programa y una vez que he definido 782 00:29:22,359 --> 00:29:23,200 Estas dos cosas 783 00:29:23,200 --> 00:29:25,000 Decir que me escriba 784 00:29:25,000 --> 00:29:26,160 Hola mundo 785 00:29:26,160 --> 00:29:29,380 ¿Qué es esto en realidad? 786 00:29:30,079 --> 00:29:31,359 Pues lo podéis ver como 787 00:29:31,359 --> 00:29:32,700 Oye sistema 788 00:29:32,700 --> 00:29:34,299 Estoy hablando a ordenador 789 00:29:34,299 --> 00:29:37,079 Vete a aquella parte del sistema 790 00:29:37,079 --> 00:29:38,819 Que es para output 791 00:29:38,819 --> 00:29:40,240 Para escribir hacia afuera 792 00:29:40,240 --> 00:29:42,400 Y ejecuta el método 793 00:29:42,400 --> 00:29:44,299 Escribir una línea 794 00:29:44,299 --> 00:29:46,140 Imprimir una línea 795 00:29:46,140 --> 00:29:48,059 Con este valor de aquí 796 00:29:48,059 --> 00:29:49,119 Esto 797 00:29:49,119 --> 00:29:51,619 Es el parámetro 798 00:29:51,619 --> 00:29:52,500 Que le estoy pasando 799 00:29:52,500 --> 00:29:56,660 ¿Dudas? 800 00:30:02,759 --> 00:30:03,079 Vale 801 00:30:03,079 --> 00:30:05,299 Entonces aquí 802 00:30:05,299 --> 00:30:06,059 A ver si dice algo 803 00:30:06,059 --> 00:30:07,799 La clase hola mundo 804 00:30:07,799 --> 00:30:08,859 No tiene atributos 805 00:30:08,859 --> 00:30:10,039 La clase hola mundo 806 00:30:10,039 --> 00:30:10,779 Tiene un solo método 807 00:30:10,779 --> 00:30:11,559 Que es el método main 808 00:30:11,559 --> 00:30:12,599 Al ejecutar este programa 809 00:30:12,599 --> 00:30:14,460 Se empezará por la primera instrucción 810 00:30:14,460 --> 00:30:15,200 Del método main 811 00:30:15,200 --> 00:30:16,240 O sea, se empieza por aquí 812 00:30:16,240 --> 00:30:17,079 ¿Vale? 813 00:30:17,559 --> 00:30:18,559 ¿Qué es el sistema output? 814 00:30:18,779 --> 00:30:19,619 Println es algo así 815 00:30:19,619 --> 00:30:20,900 System es el sistema 816 00:30:20,900 --> 00:30:22,940 Output es como la salida del sistema 817 00:30:22,940 --> 00:30:25,579 Println es imprimir una línea 818 00:30:25,579 --> 00:30:28,000 Y hola mundo es el parámetro 819 00:30:28,000 --> 00:30:30,700 Es lo que yo quiero imprimir 820 00:30:30,700 --> 00:30:31,500 ¿Se entiende? 821 00:30:36,460 --> 00:30:38,180 De hecho hemos ya usado uno 822 00:30:38,180 --> 00:30:40,339 El otro día cuando hicimos un ejemplo 823 00:30:40,339 --> 00:30:43,220 Cuando lo hicimos por línea de comando 824 00:30:43,220 --> 00:30:44,539 Con javascript y java 825 00:30:44,539 --> 00:30:47,180 En vez de println utilizamos print 826 00:30:47,180 --> 00:30:48,220 Sin ln 827 00:30:48,220 --> 00:30:50,519 Y veíamos que en vez de escribir una cosa 828 00:30:50,519 --> 00:30:51,759 Y irse a una nueva línea 829 00:30:51,759 --> 00:30:54,500 Escribía una cosa y la siguiente cosa la escribía al lado 830 00:30:54,500 --> 00:30:57,019 Y así en un funcionamiento un poquito distinto 831 00:30:57,019 --> 00:31:00,400 Este es un método de una clase 832 00:31:00,400 --> 00:31:02,400 En realidad, este señor de aquí 833 00:31:02,400 --> 00:31:03,759 Es un objeto 834 00:31:03,759 --> 00:31:04,599 ¿Vale? 835 00:31:04,839 --> 00:31:07,059 Es un objeto de la clase PrintStream 836 00:31:07,059 --> 00:31:07,720 ¿Vale? 837 00:31:08,119 --> 00:31:09,680 Que me permite escribir 838 00:31:09,680 --> 00:31:11,519 En pantalla, por ejemplo 839 00:31:11,519 --> 00:31:11,920 ¿Vale? 840 00:31:11,960 --> 00:31:13,599 Y es una cosa que se crea en automático 841 00:31:13,599 --> 00:31:14,640 Lleva a esta máquina 842 00:31:14,640 --> 00:31:17,180 Asume que esto ya está creado 843 00:31:17,180 --> 00:31:19,799 Y yo voy a usar métodos de esta clase 844 00:31:19,799 --> 00:31:20,900 Como el método Printer 845 00:31:20,900 --> 00:31:21,900 El método Printer.ln 846 00:31:21,900 --> 00:31:23,039 El método Refresh 847 00:31:23,039 --> 00:31:24,440 El método lo que me propongo 848 00:31:24,440 --> 00:31:26,180 Hay una cosa que se llama API 849 00:31:26,180 --> 00:31:28,759 Lo veremos dentro de un rato 850 00:31:28,759 --> 00:31:29,480 ¿Vale? 851 00:31:30,279 --> 00:31:33,019 Donde sostancialmente vienen todas las clases 852 00:31:33,019 --> 00:31:34,160 Ya hechas de Java 853 00:31:34,160 --> 00:31:35,960 Todas las que existen 854 00:31:35,960 --> 00:31:38,980 Y los métodos que puedo utilizar en esa clase 855 00:31:38,980 --> 00:31:40,559 Y dentro de un rato 856 00:31:40,559 --> 00:31:41,519 Nosotros iremos a 857 00:31:41,519 --> 00:31:42,200 ¿Qué es esto? 858 00:31:42,279 --> 00:31:43,720 Esta es una PrintStream 859 00:31:43,720 --> 00:31:45,619 Me voy a buscar la clase PrintStream 860 00:31:45,619 --> 00:31:47,420 Y miro con esta clase aquí 861 00:31:47,420 --> 00:31:49,099 Con un System.out que puedo hacer 862 00:31:49,099 --> 00:31:51,240 Puedo hacer la Print, puedo hacer la PrintLn 863 00:31:51,240 --> 00:31:52,839 Puedo hacer la Refresh, puedo hacer no sé qué 864 00:31:52,839 --> 00:31:54,640 Todo el método que pueda 865 00:31:54,640 --> 00:31:56,759 por ahora no, por ahora 866 00:31:56,759 --> 00:31:59,099 mantengamos sencillo y nos aprendemos 867 00:31:59,099 --> 00:32:00,900 solo que para imprimir por pantalla 868 00:32:00,900 --> 00:32:02,740 System.org.pl 869 00:32:10,180 --> 00:32:10,579 dudas