1 00:00:06,639 --> 00:00:14,660 Hola y bienvenidos al vídeo número 3, en donde vamos a contar hoy varios conceptos. 2 00:00:15,679 --> 00:00:22,339 Para empezar, vamos a partir desde el entorno de desarrollo, desde NetBeans. 3 00:00:23,179 --> 00:00:27,260 Vamos a partir de nuestro programa principal, del cual partimos siempre. 4 00:00:28,100 --> 00:00:32,039 Y vamos a fijarnos ya en algunos detalles un poquito más precisos. 5 00:00:32,039 --> 00:00:39,600 por ejemplo vamos a fijarnos en que aquí tenemos una clase que nos dice que es pública 6 00:00:39,600 --> 00:00:45,219 y dentro de esta clase que es pública tenemos un método que también es público 7 00:00:45,219 --> 00:00:50,060 de tipo estático y que es el proceso principal 8 00:00:50,060 --> 00:00:52,719 hasta ahora esto no lo habíamos dado mucha importancia 9 00:00:52,719 --> 00:00:57,039 pero bueno vamos a empezar a darle la importancia que se merece 10 00:00:57,039 --> 00:01:05,379 esta modificación de public significa que esta clase puede ser accedida por otras clases 11 00:01:05,379 --> 00:01:13,700 el hecho de que sea estático o estática significa que se creará una copia en memoria 12 00:01:13,700 --> 00:01:21,859 y otras clases podrán acceder a esta copia ya que su modificador es público 13 00:01:21,859 --> 00:01:29,959 La pregunta sería si podríamos tener más de un método dentro de una clase 14 00:01:29,959 --> 00:01:38,200 Sería algo parecido a lo que teníamos cuando hablábamos de los subprocesos en PSAIN 15 00:01:38,200 --> 00:01:41,599 Si recordáis, el concepto de subproceso en PSAIN 16 00:01:41,599 --> 00:01:48,379 Era un programa que estaba junto al programa principal 17 00:01:48,379 --> 00:01:52,739 pero que solamente era llamado cuando era necesario. 18 00:01:53,079 --> 00:01:58,319 En el caso de los métodos también pueden formar parte de la clase principal 19 00:01:58,319 --> 00:02:01,239 y ser llamados cuando los necesitemos. 20 00:02:01,780 --> 00:02:07,819 En este caso tenemos un código que seguramente ya habremos visto 21 00:02:07,819 --> 00:02:10,699 pero básicamente lo que hace es que en el programa principal 22 00:02:10,699 --> 00:02:15,060 se declaran el nombre de una persona y su edad, 23 00:02:15,060 --> 00:02:20,219 se hace una salida por pantalla para pedir los datos al usuario 24 00:02:20,219 --> 00:02:24,560 y una entrada de datos para que podamos capturar estos datos 25 00:02:24,560 --> 00:02:27,180 vamos a ejecutar este programa 26 00:02:27,180 --> 00:02:31,840 aunque ya lo hayamos visto para que veamos la diferencia con lo que queremos mostrar 27 00:02:31,840 --> 00:02:34,240 al ejecutar este programa 28 00:02:34,240 --> 00:02:39,650 aquí en la parte inferior ya nos pide el nombre 29 00:02:39,650 --> 00:02:42,770 vamos a meter por ejemplo mi nombre 30 00:02:42,770 --> 00:02:44,889 y vamos a meter una edad 31 00:02:44,889 --> 00:02:52,289 y como veis, pues bueno, esto que estoy ahora mismo seleccionando 32 00:02:52,289 --> 00:02:56,909 pues es la ejecución o el resultado de la ejecución de nuestro programa 33 00:02:56,909 --> 00:03:02,870 vamos a imaginar ahora que nosotros en vez de querer que el programa se ejecute así 34 00:03:02,870 --> 00:03:04,870 queremos que se vaya borrando la pantalla 35 00:03:04,870 --> 00:03:12,669 vamos a limpiar este área y vamos a agregar un nuevo método a esta clase 36 00:03:12,669 --> 00:03:26,710 al cual le vamos a llamar limpiar pantalla y que va a ser tan sencillo como crearnos aquí debajo del método principal. 37 00:03:27,069 --> 00:03:33,909 Vamos a crear un método público que yo ya tengo por aquí en otro sitio para no perder mucho tiempo. 38 00:03:33,909 --> 00:04:05,560 Lo voy a copiar aquí y aquí tenemos un método público que como vemos está dentro de la clase. Esta llave es la llave de cierre de la clase. El método le he llamado limpiar pantalla. También es estático porque puede ser compartido por aquellas llamadas a la clase que sean instanciadas. 39 00:04:05,560 --> 00:04:13,539 y es público porque significa que está a disposición de aquellas partes del código que lo quieran llamar. 40 00:04:14,259 --> 00:04:19,720 Como veis, esto tiene aquí una parte nueva en la que se habla de excepciones. 41 00:04:20,180 --> 00:04:24,899 No vamos a entrar mucho en detalle, pero vamos a contar un poco qué es esto de las excepciones. 42 00:04:25,620 --> 00:04:30,660 Las excepciones son sucesos que ocurren durante la ejecución de un programa 43 00:04:30,660 --> 00:04:34,139 que normalmente están relacionadas con errores en el sistema. 44 00:04:34,139 --> 00:04:44,620 y una forma de que los programas no aborten es decir no se rompan es gestionando o controlando dichas excepciones 45 00:04:44,620 --> 00:04:49,720 en este caso la función de limpiar pantalla lo que hace es una llamada creando un proceso 46 00:04:49,720 --> 00:04:55,879 y que este proceso va a hacer llamadas a la función CLS del sistema operativo 47 00:04:55,879 --> 00:05:00,160 y por lo ello tengo que hacer llamadas 48 00:05:00,160 --> 00:05:04,000 o mejor dicho capturas de excepciones 49 00:05:04,000 --> 00:05:05,740 por si acaso se produce un error 50 00:05:05,740 --> 00:05:11,920 la única salvedad que tengo que hacer 51 00:05:11,920 --> 00:05:13,439 en el uso de excepciones 52 00:05:13,439 --> 00:05:15,860 es que para capturarlas 53 00:05:15,860 --> 00:05:17,000 pues tengo que tener en cuenta 54 00:05:17,000 --> 00:05:19,500 que hay que importar determinadas clases 55 00:05:19,500 --> 00:05:21,639 así que yo voy a poner aquí 56 00:05:21,639 --> 00:05:24,579 la importación de las clases que necesito 57 00:05:24,579 --> 00:05:30,560 y repito otra vez que ahora mismo no le voy a dar mucha importancia a las excepciones 58 00:05:30,560 --> 00:05:39,180 porque lo que estamos intentando ver es el comportamiento de los métodos dentro de las clases 59 00:05:39,180 --> 00:05:46,379 entonces una vez que tengamos este programa, bueno las excepciones 60 00:05:46,379 --> 00:05:52,040 normalmente se propagan a las clases, a los métodos que las llaman 61 00:05:52,040 --> 00:05:59,379 y como las llamadas las vamos a hacer aquí, pues entonces seguramente nos va a dar error si no lo ponemos aquí, ¿vale? 62 00:05:59,740 --> 00:06:03,980 Pero no lo voy a poner para que veáis lo que pasa. 63 00:06:05,019 --> 00:06:12,959 Vamos a llamar aquí al método limpiar pantalla, limpiar pantalla, 64 00:06:13,939 --> 00:06:21,300 cuyo objetivo simplemente es hacer un clear screen de la pantalla, 65 00:06:21,300 --> 00:06:30,540 Es decir, que me pida el nombre, se limpie la pantalla, me pida la edad, se limpie la pantalla y por último, al mostrar los datos, también se limpie la pantalla. 66 00:06:32,180 --> 00:06:44,720 Bueno, como veis aquí ya nos está marcando un error porque evidentemente como desde el programa principal, que es esto, desde el método principal, mejor dicho, voy a reducir un poco la pantalla para que se entienda un poquito mejor. 67 00:06:44,720 --> 00:07:03,720 Desde este método principal vamos a llamar a este método, digamos que está en segundo lugar, no digo lo de segundo lugar porque sea menos importante, sino porque es un método adicional, pero como veis la llamada es a un método diferente. 68 00:07:03,720 --> 00:07:13,420 entonces el arrojo de excepciones que se produzcan en este método secundario o auxiliar 69 00:07:13,420 --> 00:07:20,160 no son propagables aquí a menos que yo también capture aquí las excepciones 70 00:07:20,160 --> 00:07:25,800 así que lo que voy a hacer aquí es copiar esta parte que básicamente lo que hace es declarar 71 00:07:25,800 --> 00:07:31,939 que en esta parte también se pueden producir excepciones provocadas obviamente por la llamada a esta función 72 00:07:31,939 --> 00:07:36,839 o a este método, una vez que ponemos esto 73 00:07:36,839 --> 00:07:40,259 pues ya la gestión de excepciones que se produzca aquí 74 00:07:40,259 --> 00:07:45,139 si la llamada procede aquí va a subir a este método y la gestión 75 00:07:45,139 --> 00:07:48,920 de excepciones también va a ser visible desde el proceso 76 00:07:48,920 --> 00:07:53,180 main, pero al ejecutarlo 77 00:07:53,180 --> 00:07:56,800 vamos a guardarlo, al ejecutarlo os vais a dar cuenta de una 78 00:07:56,800 --> 00:08:00,560 parte, de una cosa curiosa, vamos a ejecutar el código 79 00:08:00,560 --> 00:08:07,350 aquí abajo, perdón, aquí abajo aparece de nuevo 80 00:08:07,350 --> 00:08:10,629 que le demos los datos, le damos el nombre 81 00:08:10,629 --> 00:08:17,170 nos pide la edad y aparece la información 82 00:08:17,170 --> 00:08:21,069 y alguien dirá, entonces, ¿para qué hemos puesto 83 00:08:21,069 --> 00:08:24,769 esto de limpiar pantalla? Todo el mundo habrá observado que 84 00:08:24,769 --> 00:08:28,529 he generado aquí un nuevo método que te limpia la pantalla 85 00:08:28,529 --> 00:08:32,730 pero sin embargo no hemos conseguido el objetivo que queríamos 86 00:08:32,730 --> 00:08:38,850 Pues bien, esto ocurre porque el IDE no es capaz de interpretar esto de aquí 87 00:08:38,850 --> 00:08:44,889 Porque esto son llamadas a las funciones del sistema operativo 88 00:08:44,889 --> 00:08:48,629 Y alguien dirá, entonces, ¿para qué me sirve esto en realidad? 89 00:08:48,629 --> 00:08:51,970 Bueno, para poder ver el uso de esto y la utilidad 90 00:08:51,970 --> 00:08:54,429 Voy a hacer un clear aquí 91 00:08:54,429 --> 00:09:02,929 lo que vamos a hacer es sacar el símbolo del sistema 92 00:09:02,929 --> 00:09:07,269 aunque antes os quería enseñar aquí en principal 93 00:09:07,269 --> 00:09:08,509 si os vais a propiedades 94 00:09:08,509 --> 00:09:13,350 os dice en el apartado source 95 00:09:13,350 --> 00:09:16,470 os dice la ruta de vuestro proyecto 96 00:09:16,470 --> 00:09:18,769 esta es la ruta de vuestro proyecto 97 00:09:18,769 --> 00:09:47,789 Si ahora sí sacamos el símbolo de sistema, voy a moverlo para no perder las dos pantallas, y nos metemos en esta ruta, ahora mismo estamos en CD Users, trabajo, bueno, esto es en mi máquina, vosotros tendréis que ver cuál es la ruta en la vuestra, y entramos o navegamos hasta esa ruta, vamos a la carpeta NetBeans, 98 00:09:47,789 --> 00:09:53,659 vamos a la carpeta principal 99 00:09:53,659 --> 00:09:58,679 y voy a borrar la pantalla con el CLS 100 00:09:58,679 --> 00:10:01,679 hacemos un DIR para mostrar los directorios 101 00:10:01,679 --> 00:10:05,179 y vemos aquí el directorio SRC 102 00:10:05,179 --> 00:10:07,940 que es donde está el source 103 00:10:07,940 --> 00:10:10,419 hacemos un CD SRC 104 00:10:10,419 --> 00:10:13,259 hacemos un DIR 105 00:10:13,259 --> 00:10:15,340 y vemos aquí que aquí hay un mail 106 00:10:15,340 --> 00:10:17,220 una carpeta mail 107 00:10:17,220 --> 00:10:20,700 voy a hacer un CLS para que no os perdáis todo 108 00:10:20,700 --> 00:10:26,320 cd main, lo único que estoy haciendo es navegar a través de los directorios 109 00:10:26,320 --> 00:10:30,139 que me encuentro, hago un dir para volver a listar directorios y me encuentro 110 00:10:30,139 --> 00:10:33,399 otro directorio que es java, vale, vamos a meternos dentro 111 00:10:33,399 --> 00:10:41,139 hacemos un cls, un dir y ya aquí vemos que aparece el com 112 00:10:41,139 --> 00:10:44,899 alguien dirá, ¿esto de com qué es? vale, pues esto de com, fijaos que aquí arriba 113 00:10:44,899 --> 00:10:49,080 aparece el paquete com my company 114 00:10:49,080 --> 00:10:52,860 punto principal y debajo ya estaría el fichero 115 00:10:52,860 --> 00:11:00,379 principal punto java qué significa eso pues que si sigo esta ruta a partir de aquí voy a encontrar 116 00:11:00,379 --> 00:11:09,059 este fichero vale así que vamos a hacer cd con vamos a hacer hundir para que veáis que esto es 117 00:11:09,059 --> 00:11:14,320 así fijaos que aquí aparece en my company que es justo lo que aparece aquí en el dominio este que 118 00:11:14,320 --> 00:11:29,559 hemos puesto cd mycompany y cd principal que aparece también aquí. Vamos a hacer un cls y 119 00:11:29,559 --> 00:11:36,360 vamos a hacer un dir para que veáis el contenido del directorio. Como veis aquí aparece ya un 120 00:11:36,360 --> 00:11:43,379 fichero que es principal.java y que justo coincide con el que tenemos aquí. Cuando nosotros tenemos 121 00:11:43,379 --> 00:11:49,980 un fichero java y tenemos ya la utilidad instalada, podemos también hacer uso del compilador 122 00:11:49,980 --> 00:11:56,700 de modo que nos puede compilar el programa en este mismo lugar. ¿Cómo se haría? Pues 123 00:11:56,700 --> 00:12:04,059 se haría de la siguiente forma. Si escribimos java c, que significa que vamos a compilar 124 00:12:04,059 --> 00:12:10,120 un programa en java y le ponemos el nombre del programa, punto java, en este caso como 125 00:12:10,120 --> 00:12:16,500 no hay errores o no debería haber errores nos va a compilar bien le damos a enter y si no da 126 00:12:16,500 --> 00:12:22,840 errores se supone que se ha compilado si ahora queremos ejecutar el programa en vez de con java 127 00:12:22,840 --> 00:12:32,299 hace lo vamos a hacer con java y vamos a poner principal punto cuando hagamos esto no se va a 128 00:12:32,299 --> 00:12:38,779 compilar el programa fijaos la diferencia entre los dos comandos voy a centrar un poco más la 129 00:12:38,779 --> 00:12:46,659 ventana y fijaos que ahora lo que quiero es ejecutar vale al ejecutar aquí el programa 130 00:12:48,240 --> 00:12:53,700 veis que lo primero que ha pasado es que se ha borrado la pantalla vale esto es una cosa que 131 00:12:53,700 --> 00:12:59,539 no pasaba en la ejecución del otro programa vale si recordáis lo que hacía nuestro programa voy 132 00:12:59,539 --> 00:13:04,779 a volver a ver si lo puedo enseñar aquí este limpiar pantalla es el primero que se ha ejecutado 133 00:13:04,779 --> 00:13:10,200 ejecutado y voy a quitar esto. El primero que se ha ejecutado nos va a pedir el nombre 134 00:13:10,200 --> 00:13:17,659 y una vez que tengamos este nombre nos va a permitir introducir la edad. Así que siguiendo 135 00:13:17,659 --> 00:13:23,679 con la práctica esta que estamos haciendo, vamos a meterle el nombre y cuando lo introduzcamos 136 00:13:23,679 --> 00:13:29,759 debería borrar la pantalla de nuevo. Veis que se ha borrado la pantalla y ahora sí 137 00:13:29,759 --> 00:13:32,360 nos permite meter la edad 138 00:13:32,360 --> 00:13:35,059 cuando introduzcamos la edad 139 00:13:35,059 --> 00:13:37,820 veis que, voy a poner esto un poquito al lado 140 00:13:37,820 --> 00:13:40,899 cuando introduzcamos la edad y pulsemos enter 141 00:13:40,899 --> 00:13:42,919 pues se va a ejecutar esta parte de aquí 142 00:13:42,919 --> 00:13:45,320 es decir, nos mostrará solamente los datos 143 00:13:45,320 --> 00:13:47,059 borrando previamente la pantalla 144 00:13:47,059 --> 00:13:50,159 y bueno, pues aquí tenéis 145 00:13:50,159 --> 00:13:52,259 que se ha borrado la pantalla 146 00:13:52,259 --> 00:13:53,340 nos muestra aquí 147 00:13:53,340 --> 00:13:56,860 los datos del usuario que hemos introducido 148 00:13:56,860 --> 00:13:59,460 y bueno, aquí nos sale la línea del PROM 149 00:13:59,460 --> 00:14:25,019 porque ya el programa ha terminado, entonces como resumen de esta primera parte del vídeo, porque quiero hacer una continuación de este vídeo, como veis hemos tocado varias cosas, en primer lugar que una clase no tiene por qué tener un solo método, 150 00:14:25,019 --> 00:14:33,220 En este caso tenía el método main, pero le hemos añadido un método adicional que es limpiar pantalla. 151 00:14:33,500 --> 00:14:43,059 En segundo lugar, el modificador public hace que este método sea accesible a cualquier clase que lo instante. 152 00:14:43,899 --> 00:14:51,299 El modificador static lo hace para que todos los que instancen este método lo hagan compartiendo el mismo código. 153 00:14:51,299 --> 00:15:00,039 y por último que el uso de algunas llamadas a funciones dentro de la aplicación 154 00:15:00,039 --> 00:15:04,320 podrían producir errores que podemos gestionar mediante el uso de excepciones 155 00:15:04,320 --> 00:15:08,360 y aunque no hemos insistido mucho en cómo gestionar estas excepciones 156 00:15:08,360 --> 00:15:14,919 que veáis que si no ponéis este uso de excepciones pues la aplicación no va a funcionar 157 00:15:14,919 --> 00:15:20,440 obviamente habrá que hacer importación de estas librerías 158 00:15:20,440 --> 00:15:22,860 para que podamos hacer la gestión apropiada 159 00:15:22,860 --> 00:15:26,559 de este tipo de funciones 160 00:15:26,559 --> 00:15:29,700 bueno, vamos a dejar el vídeo aquí 161 00:15:29,700 --> 00:15:32,440 y en el siguiente vídeo vamos a intentar 162 00:15:32,440 --> 00:15:35,320 hacer una pequeña modificación en este programa 163 00:15:35,320 --> 00:15:39,279 para volver a añadir algún método más