1 00:00:07,019 --> 00:00:17,179 Iniciamos este cuarto vídeo partiendo del código del último programa que habíamos estado viendo en el vídeo anterior. 2 00:00:17,480 --> 00:00:26,719 Si recordáis así como un resumen rápido del vídeo anterior, lo que habíamos estado haciendo es que a esta clase principal en Java 3 00:00:26,719 --> 00:00:32,579 le habíamos añadido este método que era el de limpiar la pantalla 4 00:00:32,579 --> 00:00:38,039 que ya vimos que la ejecución de NetBeans no funciona 5 00:00:38,039 --> 00:00:42,859 porque realmente este método lo que hace es una llamada 6 00:00:42,859 --> 00:00:48,060 a una función del sistema operativo que nos ayuda a limpiar la pantalla 7 00:00:48,060 --> 00:00:56,539 y solamente puede verse este efecto si ejecutamos desde la ventana del sistema 8 00:00:56,539 --> 00:00:59,200 ¿Vale? Desde el terminal en modo comando. 9 00:01:00,520 --> 00:01:15,719 Lo que vamos a hacer ahora, si recordáis, el objetivo de esto es analizar por qué o el motivo de por qué una clase tiene más de un método 10 00:01:15,719 --> 00:01:21,500 y hacer un ejemplo en el que se pueda ver que esto es factible, ¿no? 11 00:01:21,500 --> 00:01:25,980 Que se puede agregar el número de métodos que se desean a una clase. 12 00:01:26,540 --> 00:01:37,560 En este momento tenemos el método principal y el método limpiar pantalla y si os fijáis aquí tenemos dos peticiones de datos, ¿vale? 13 00:01:37,560 --> 00:01:45,700 Las estoy poniendo aquí sombreadas en azul, una es para pedir el nombre y la otra es para pedir la edad. 14 00:01:46,019 --> 00:01:55,420 Lo que vamos a hacer es convertir estas dos peticiones de datos en dos métodos para que veáis cómo se haría esto. 15 00:01:55,420 --> 00:02:20,379 Vamos a empezar con el del nombre y básicamente pues cuando hacemos este tipo de cambios o este tipo de desarrollos tenemos que ver cómo se va a comportar la petición de datos en este caso en la que nosotros queremos obtener al final cuando llamemos a ese método queremos obtener un método de tipo string. 16 00:02:20,379 --> 00:02:28,599 entonces el desarrollo de ese método tendremos que hacerlo en función de las necesidades que tengamos de código 17 00:02:28,599 --> 00:02:34,259 entonces el primer método le vamos a llamar leerNombre 18 00:02:34,259 --> 00:02:37,740 el nombre del método le podéis llamar como queráis 19 00:02:37,740 --> 00:02:42,860 yo le voy a llamar leerNombre y va a devolver un string 20 00:02:42,860 --> 00:03:03,900 ¿Vale? Teniendo esto claro y teniendo en cuenta que dentro de ese método tenemos que hacer uso de la clase Scanner para poder leer una línea de texto por teclado, pues más o menos ya podemos deducir cómo va a ser el código. 21 00:03:03,900 --> 00:03:07,219 Así que vamos a implementarlo aquí debajo 22 00:03:07,219 --> 00:03:11,580 No importa que lo pongáis encima o debajo de este 23 00:03:11,580 --> 00:03:16,120 Yo lo voy a poner justo debajo porque el de limpiar pantalla ya lo teníamos visto 24 00:03:16,120 --> 00:03:21,099 Iniciamos con public static, ya lo explicamos el otro día 25 00:03:21,099 --> 00:03:24,900 Que era para poder ser compartido de forma pública 26 00:03:24,900 --> 00:03:29,580 el void en el caso de antes 27 00:03:29,580 --> 00:03:33,939 el void significaba que este método no devolvía datos 28 00:03:33,939 --> 00:03:38,020 pero en nuestro caso tiene que devolver un tipo de dato string 29 00:03:38,020 --> 00:03:40,919 ya que lo que vamos a hacer es leer un dato 30 00:03:40,919 --> 00:03:46,620 y devolverlo al parámetro que lo necesite 31 00:03:46,620 --> 00:03:51,240 el nombre del método en este caso va a ser leerNombre 32 00:03:51,240 --> 00:04:04,419 y en principio no hay que pasarle, no hay que pasarle, insisto, ningún parámetro, así que lo ponemos sin pasarle parámetros. 33 00:04:05,080 --> 00:04:19,699 Dentro de este método tendremos que poner la clase Scanner, la podemos copiar para ir un poco más rápido, 34 00:04:19,699 --> 00:04:35,910 la copiamos aquí y tenemos que declarar algún parámetro de tipo string vale no hace falta que 35 00:04:35,910 --> 00:04:41,649 tenga el mismo nombre por ejemplo le voy a poner nombre persona para que veáis que no hace falta 36 00:04:41,649 --> 00:04:48,889 que sea el mismo vale y aquí vamos a decir que nombre persona bueno aquí tendríamos que pedir 37 00:04:48,889 --> 00:05:00,160 primero vamos a copiar esta parte para ir un poco más rápido y sustituir lo que necesitemos 38 00:05:02,540 --> 00:05:09,860 aquí el lugar e introduce tu nombre esto no va a cambiar si queréis podemos para que veáis que 39 00:05:09,860 --> 00:05:16,160 lo está llamando de aquí vamos a poner introduce nombre persona y así veis que cambia en la 40 00:05:16,160 --> 00:05:23,540 ejecución y aquí el nombre no sería correcto tendría que ser el nombre de la variable que 41 00:05:23,540 --> 00:05:30,620 esté dentro del método porque aquí dentro la variable nombre no se ve por último como lo que 42 00:05:30,620 --> 00:05:39,000 hace este método es declarar el nombre de persona le pide al usuario ese nombre lo lee a través de 43 00:05:39,000 --> 00:05:44,519 esta instrucción lo único que nos quedaría hacer es decirle al método que una vez que ya esté leído 44 00:05:44,519 --> 00:05:48,199 lo devuelva, ¿cómo lo devuelve? pues con un return 45 00:05:48,199 --> 00:05:52,240 ¿vale? con la instrucción return y la variable, en este caso 46 00:05:52,240 --> 00:05:56,199 nombre de persona, pues con esto 47 00:05:56,199 --> 00:06:00,579 el método quedaría 48 00:06:00,579 --> 00:06:04,519 finalizado, ¿vale? vamos a ver si lo entendemos, lo declaramos 49 00:06:04,519 --> 00:06:08,339 como static public, public static, perdón, para que 50 00:06:08,339 --> 00:06:12,600 se pueda utilizar de forma pública, el nombre 51 00:06:12,600 --> 00:06:16,600 es leer nombre, valga la redundancia 52 00:06:16,600 --> 00:06:18,939 y el tipo de dato que devuelve es un string 53 00:06:18,939 --> 00:06:22,040 tiene que estar todo en consonancia 54 00:06:22,040 --> 00:06:24,819 el método scanner lo tenemos que poner 55 00:06:24,819 --> 00:06:27,920 porque aquí hace uso del método nestline 56 00:06:27,920 --> 00:06:29,399 para hacer la lectura del nombre 57 00:06:29,399 --> 00:06:33,399 string es el nombre de la variable que vamos a utilizar 58 00:06:33,399 --> 00:06:35,839 para que este método descargue el nombre aquí 59 00:06:35,839 --> 00:06:39,120 y después una vez que tengamos el nombre herido 60 00:06:39,120 --> 00:06:41,319 tiene que retornar el nombre de persona 61 00:06:41,319 --> 00:06:52,779 que si os fijáis es el mismo tipo de dato que aparece aquí, ¿vale? Este tipo de dato, nombre de persona, es el que devuelve el proceso. 62 00:06:53,720 --> 00:07:02,439 Para hacer la llamada al proceso, ¿cómo sería? Bueno, fijaos que aquí nos está devolviendo un nombre porque ahora mismo no tiene valor, ¿vale? 63 00:07:02,439 --> 00:07:22,379 Pero aquí podemos poner un comentario, lectura del nombre de la persona y aquí estaría la llamada. 64 00:07:22,660 --> 00:07:26,879 Nombre es igual a leer nombre. 65 00:07:30,699 --> 00:07:37,620 ¿Qué va a ocurrir aquí? Pues que se va a limpiar la pantalla y nombre va a tomar el valor de leer nombre. 66 00:07:37,620 --> 00:07:59,120 Como esto no es un valor, sino que es un proceso que debe ejecutarse para obtener aquí el valor, ¿qué va a hacer? Va a parar el código aquí, va a hacer la llamada a leer nombre, va a hacer este proceso y una vez que el nombre de persona lo tengamos, lo va a devolver, ¿vale? Para eso sirve la instrucción return, lo va a devolver a este. 67 00:07:59,120 --> 00:08:06,000 de modo que una vez que se ejecute esta línea en nombre tendremos el nombre de persona 68 00:08:06,000 --> 00:08:13,160 vamos a hacer lo mismo con edad para que veáis que los tipos no tienen que ser igual 69 00:08:13,160 --> 00:08:17,740 en este caso el tipo edad es un tipo entero 70 00:08:17,740 --> 00:08:25,050 así que si hacemos la construcción de este método sería similar al anterior 71 00:08:25,050 --> 00:08:28,930 public static para que pueda ser compartido 72 00:08:28,930 --> 00:08:33,659 le ponemos el tipo de dato que debo devolver 73 00:08:33,659 --> 00:08:35,200 en este caso como es la edad 74 00:08:35,200 --> 00:08:37,080 le dimos que es un int 75 00:08:37,080 --> 00:08:40,659 y le ponemos leer edad al nombre del método 76 00:08:40,659 --> 00:08:42,519 no tiene que recibir parámetros 77 00:08:42,519 --> 00:08:44,639 sino que los tiene que devolver 78 00:08:44,639 --> 00:08:50,360 así que en principio le ponemos los paréntesis vacíos 79 00:08:50,360 --> 00:08:52,100 esta parte de aquí sería igual 80 00:08:52,100 --> 00:08:57,590 que lo que hace es declarar el objeto scanner 81 00:08:57,590 --> 00:08:59,149 para que lo podamos utilizar 82 00:08:59,149 --> 00:09:02,049 y esta parte de aquí también la podemos aprovechar 83 00:09:02,049 --> 00:09:10,110 porque va a ser la que me movamos dentro del método aquí vamos a declarar una variable entera 84 00:09:10,110 --> 00:09:21,440 que va a ser edad persona también para que veáis que no se tiene por qué llamar de la misma forma 85 00:09:21,440 --> 00:09:29,960 que el contenedor de donde se va a devolver el valor y en este caso se le pide al usuario la 86 00:09:29,960 --> 00:09:39,799 edad su edad vamos a cambiar también el mensaje introduce edad persona para que veáis que se está 87 00:09:39,799 --> 00:09:46,899 ejecutando este este método y no se está ejecutando a ningún otro aquí nos está dando este error 88 00:09:46,899 --> 00:09:52,700 porque no le estamos poniendo bien el nombre de la variable donde tiene que devolver el dato vale 89 00:09:52,700 --> 00:10:13,159 La filosofía es la misma que el leer persona, pero en este caso hay que hacer el return, es decir, tiene que devolver el dato de la edad de la persona, ¿vale? Como veis, los métodos están aislados entre sí, pero pueden ser invocados cuando los necesitemos. 90 00:10:13,159 --> 00:10:38,440 Lo único que hay que hacer aquí, pues ahora ya aquí nos está dando el mismo error que antes, ¿vale? Para nombre, porque edad no tiene ningún valor asignado. Así que en esta parte vamos a aprovechar para poner que esta es la lectura de la edad de la persona y vamos a aprovechar también para hacer la llamada. 91 00:10:38,440 --> 00:10:48,759 en este caso edad es igual a leer edad y con esto en principio si no hay ningún error 92 00:10:49,840 --> 00:10:56,700 estaría funcionando y lo vamos a ejecutar aquí en el net wins o sea en el iden es mismo vamos a 93 00:10:56,700 --> 00:11:02,980 guardar ya sabéis que la parte está de borrar la pantalla no nos va a funcionar porque no estamos 94 00:11:02,980 --> 00:11:10,299 ejecutando en el sistema pero bueno no importa aquí si queréis también esto nos sobraría esta 95 00:11:10,299 --> 00:11:16,700 clase escane porque ahora mismo ya no se está utilizando ya que la lectura se está utilizando 96 00:11:16,700 --> 00:11:22,419 en los en los métodos y aquí sí que tiene que ir declarada vale pero aquí en el programa en 97 00:11:22,419 --> 00:11:29,480 el método principal puesto vamos a guardar vamos a ejecutar y veremos que si todo ha ido bien se 98 00:11:29,480 --> 00:11:38,559 tiene que tenemos que obtener el mismo resultado vale está ejecutando y aquí abajo ya nos aparece 99 00:11:38,559 --> 00:11:44,580 introduce el nombre de persona aquí vamos a introducir el nombre de una persona aquí nos 100 00:11:44,580 --> 00:11:53,440 tiene que pedir la edad 25 fijaos que el mensaje que está mandando es el que hemos puesto nuevo 101 00:11:53,440 --> 00:12:00,539 es decir está ejecutando ahora mismo en este momento estaría ejecutando esta parte de código 102 00:12:00,539 --> 00:12:17,519 el que está leyendo la edad, aquí le damos a enter y la parte en la que se muestran los datos pues eso no varía, lo que queremos ver con este ejemplo 103 00:12:17,519 --> 00:12:27,860 es que en una clase no tiene por qué haber un solo método, podemos desglosar las funcionalidades de la clase en distintos métodos 104 00:12:27,860 --> 00:12:52,340 En este caso creo que tenemos el método principal que es el que va ejecutando la parte principal del programa y después tenemos métodos auxiliares como el de leer edad, leer nombre y limpiar pantalla que nos van a ayudar a que la aplicación no tenga el grueso del código en el programa principal o en la parte principal. 105 00:12:52,340 --> 00:13:03,360 bueno pues con esto ponemos fin a este cuarto vídeo y espero que haya quedado claro el concepto de métodos dentro de las clases