1 00:00:01,010 --> 00:00:14,890 Buenos días, os hago esta grabación porque es el día 15 de octubre, porque el día 14, la tutorial de ayer, la estuve grabando, pero resulta que la aplicación no tenía seleccionado el audio y nos quedó un bonito vídeo, pero sin audio. 2 00:00:15,570 --> 00:00:25,550 Así que os voy a repasar los contenidos de los que habíamos estado hablando ayer y os hago un pequeño resumen. Os subo este vídeo en sustitución de lo que era la grabación de la clase de ayer. 3 00:00:25,550 --> 00:00:32,549 mirad estuvimos hablando en primer lugar de un cierto modo de clasificar los lenguajes de 4 00:00:32,549 --> 00:00:39,490 programación hay muchos mecanismos pero uno de ellos va en función de lo cercano que están las 5 00:00:39,490 --> 00:00:45,929 instrucciones que utilizamos para programar a la propia arquitectura hardware de los equipos 6 00:00:45,929 --> 00:00:51,490 donde va a correr el programa o más cercano a la forma en la que los seres humanos vemos la 7 00:00:51,490 --> 00:00:57,450 realidad digamos entonces unos son lenguajes de bajo nivel y los que están próximos a los 8 00:00:57,450 --> 00:01:04,030 procesadores y los otros son lenguajes de alto nivel los lenguajes de alto nivel el más típico 9 00:01:04,030 --> 00:01:15,040 es la forma de programar en código máquina donde el programador en realidad conoce el juego 10 00:01:15,040 --> 00:01:20,359 instrucciones que utiliza el procesador y lo que mete realmente son combinaciones de ceros y unos 11 00:01:20,359 --> 00:01:25,579 esto podría ser un tipo de instrucción que entiende el procesador y a partir de aquí hace ciertas cosas 12 00:01:26,239 --> 00:01:40,579 El hardware en informática trabaja en sistema binario, con lo cual lo que utilizas son ceros y unos y las instrucciones en última instancia son ejecutadas por los equipos bajo este modelo. 13 00:01:41,700 --> 00:01:54,219 Imaginad lo complicado que sería si una tienda nos solicita un programa para la gestión de su inventario, hacer un programa en base a ceros y unos que termine dando respuesta a esos requisitos que nos plantea la tienda. 14 00:01:55,579 --> 00:02:07,680 A partir de aquí se empiezan a dar diferentes niveles de extracción, es decir, ir de alguna forma encasulando los códigos que van entendiendo el hardware en cosas más legibles por los seres humanos. 15 00:02:07,680 --> 00:02:30,199 Y lo siguiente que tenemos es el lenguaje asamblador, en el cual ya por lo menos no trabajamos con ceros y unos y las instrucciones son del tipo de move, de mover a una zona de memoria un determinado valor, ADD si queremos sumar dos valores numéricos, pero aún así todavía esto queda lejísimos de cómo entendemos nosotros el problema que se quiera resolver. 16 00:02:30,199 --> 00:02:36,639 En este caso sería el realizar el inventario de una determinada tienda. 17 00:02:37,680 --> 00:02:42,800 Según vamos avanzando, nos encontramos con lenguajes de alto nivel. 18 00:02:44,879 --> 00:02:53,719 Y estos sí que intentan que se plantee el código que resuelve el algoritmo sobre el que queremos trabajar 19 00:02:53,719 --> 00:02:58,259 de una forma muy parecida a como nosotros pensamos, a como el ser humano piensa. 20 00:03:00,729 --> 00:03:05,729 Y dentro de estos, bueno, pues tenemos en última instancia los lenguajes funcionales, 21 00:03:05,729 --> 00:03:26,569 En cualquier lenguaje hay que respetar una determinada sintaxis de cómo funciona, pero este tipo de lenguajes lo que hacen es que buscan que describas el problema y ellos a través de las compilaciones terminan convirtiendo eso que has dicho tú a lo que sería un lenguaje máquina que al final es necesario para que corra dentro del orden. 22 00:03:26,569 --> 00:03:36,520 Y otra vez en esta categoría de lenguajes de alto nivel serían los lenguajes del paradigma de la programación orientada a objetos. 23 00:03:37,039 --> 00:03:43,439 programación orientada a objetos, que es el tema que nos cubre en esta asignatura 24 00:03:43,439 --> 00:03:45,699 y en particular utilizaremos el lenguaje Java. 25 00:03:49,789 --> 00:03:54,330 Otra clasificación que podemos hacer en los lenguajes que me interesa destacar aquí 26 00:03:54,330 --> 00:03:59,729 es la que tiene que ver con los lenguajes que son ejecutados y los que son interpretados. 27 00:04:00,270 --> 00:04:05,710 En los lenguajes ejecutados se desarrolla el código según la sintaxis y la semántica que tenga ese lenguaje, 28 00:04:05,710 --> 00:04:14,530 por ejemplo en el lenguaje C++, en un fichero que normalmente tendrá una extensión que será .c o .gc, 29 00:04:15,789 --> 00:04:23,389 ponemos el código tal cual nos define este lenguaje y lo que se hace es realizar una compilación 30 00:04:23,389 --> 00:04:26,610 mediante un programa que es el compilador. 31 00:04:27,949 --> 00:04:34,490 Este programa lo que hace es coger este código en C, valida su sintaxis, su semántica 32 00:04:34,490 --> 00:04:38,509 y como salida nos proporciona un código máquina. 33 00:04:41,189 --> 00:04:45,149 Este código máquina será propio de una plataforma de ejecución hardware. 34 00:04:46,730 --> 00:04:51,230 Si nuestro programa en C queremos que corra en otra plataforma diferente, 35 00:04:51,970 --> 00:04:56,290 tendremos que utilizar un compilador que volverá a tener como origen el mismo código C, 36 00:04:56,290 --> 00:05:01,850 pero nos sacaría una combinación de código máquina, secuencias de ceros y unos, 37 00:05:02,350 --> 00:05:04,209 que tendría un procesador diferente. 38 00:05:04,209 --> 00:05:19,110 Con lo cual, para trabajar en diferentes plataformas, en los lenguajes que decimos que son ejecutados, el compilador es diferente en cada uno de los casos, obteniendo diferentes resultados de código máquina. 39 00:05:19,110 --> 00:05:30,300 Y luego están los interpretados. En esta categoría es donde vamos a meter nosotros Java, aunque siempre se dice que hay otros interpretados más puros que Java, como puede ser Python. 40 00:05:31,259 --> 00:05:38,699 Java a veces lo catalogan como semi-interpretado, pero bueno, nosotros lo vamos a considerar como interpretado en este caso. 41 00:05:38,699 --> 00:05:49,339 y lo que hacemos es que en esta ocasión en java el código fuente, es decir, donde nosotros ponemos con sintaxis y semántica java 42 00:05:49,339 --> 00:05:56,300 la solución que queremos dar a la resolución del algoritmo, lo introducimos en ficheros que tienen extensión .java. 43 00:05:56,779 --> 00:06:05,399 Nuevamente le pasamos un compilador que valida que este código es correcto, por lo menos en cuanto a su escritura, su sintaxis y semántica 44 00:06:05,399 --> 00:06:28,519 Y una vez que hemos hecho esto, tenemos un ficherito que tiene extensión .class. Este ficherito extensión .class, que también se llama bytecode, es algo intermedio, no es ni el lenguaje, ni un código máquina que entiendan una arquitectura, ni es el código Java, ya que hemos aplicado con el compilador sobre él ciertas validaciones. 45 00:06:28,519 --> 00:06:35,819 qué pasa con este bytecode es que antes de ejecutarlo en una plataforma en cualquiera 46 00:06:35,819 --> 00:06:41,639 de ellas tendremos que pasarle otro programa que es el intérprete intérprete es capaz de 47 00:06:41,639 --> 00:06:52,860 entender bytecode en java y este es el que nos saca como resultado código máquina en esta 48 00:06:52,860 --> 00:06:57,899 ocasión será el intérprete el que será diferente para cada una de las plataformas y el compilador 49 00:06:57,899 --> 00:07:05,300 será común a todas ellas dándonos un bytecode común que va a ejecutarse en un hardware o en otro. 50 00:07:05,300 --> 00:07:11,459 ¿Qué ventajas nos proporcionan los lenguajes ejecutados? Pues típicamente, como la compilación 51 00:07:11,459 --> 00:07:16,660 ya se ha realizado y tenemos ya el código máquina, la plataforma hardware es capaz de coger ese 52 00:07:16,660 --> 00:07:21,800 código máquina y ponerlo en marcha de forma muy rápida. En los interpretados, nosotros lo que 53 00:07:21,800 --> 00:07:27,339 distribuimos es el bytecode y en todos los ordenadores, dependiendo de la plataforma 54 00:07:27,339 --> 00:07:33,360 hardware que tengan tendrán un intérprete que será algo distinto y cada vez que queramos ejecutar 55 00:07:33,360 --> 00:07:40,220 nuestro programa se cogerá este bytecode y será necesario hacer uso del intérprete entonces el 56 00:07:40,220 --> 00:07:44,620 tiempo de procesamiento que lleva este intérprete digamos que es una penalización en cuanto al 57 00:07:44,620 --> 00:07:51,920 rendimiento en los programas interpretados pero la ventaja es que nosotros no tenemos que estar 58 00:07:51,920 --> 00:07:57,720 compilando nuestro programa como desarrolladores para diferentes plataformas porque es común a 59 00:07:57,720 --> 00:08:10,439 todas ellas. Dicho esto y centrándonos en Java, pues tenemos que Java es un lenguaje que utiliza 60 00:08:10,439 --> 00:08:29,319 la programación orientada a objetos, lenguaje de alto nivel y es interpretado. Una segunda cosa 61 00:08:29,319 --> 00:08:33,519 de la que estuvimos hablando en la tutoría era un poco del ciclo de vida de los proyectos. 62 00:08:33,820 --> 00:08:38,100 Os comentaba en la universidad, yo al menos estudié una asignatura, no sé si se irá 63 00:08:38,100 --> 00:08:43,840 cuando hice informática, que se llamaba Ingeniería de Software. Y hacía un repaso de las diferentes 64 00:08:43,840 --> 00:08:49,120 fases por las que debemos pasar cuando estamos realizando un proyecto. Un proyecto en nuestro 65 00:08:49,120 --> 00:08:54,700 caso va a ser software, pero un proyecto general de ingeniería. E incluso os comentaba que 66 00:08:54,700 --> 00:08:59,139 es una secuencia de cosas que en realidad hacemos nosotros en nuestro día a día para 67 00:08:59,139 --> 00:09:06,759 cualquier actividad entonces en primer lugar se identifican digamos las necesidades que tenemos 68 00:09:06,759 --> 00:09:13,379 podemos definir unos requisitos de lo que lo que estamos planteando nos luego haríamos un diseño 69 00:09:13,379 --> 00:09:27,480 que es plantear cómo vamos a resolver están esas necesidades que se han planteado luego tenemos un 70 00:09:27,480 --> 00:09:35,580 desarrollo que sería la propia la propia implementación de la implementación de 71 00:09:35,580 --> 00:09:40,440 la solución que hemos diseñado podríamos hacer unas pruebas para más o menos tener 72 00:09:40,440 --> 00:09:48,059 ciertas garantías de que ese desarrollo funciona una entrega podríamos considerarlo como una 73 00:09:48,059 --> 00:09:55,789 puesta en producción si es un programa y luego bueno pues una última fase que llevaría un 74 00:09:55,789 --> 00:10:05,559 mantenimiento que podría ser o bien correctivo o bien evolutivo correctivo para solucionar un 75 00:10:05,559 --> 00:10:10,940 posible problema que hayamos en el que hayamos caído cuando hicimos el desarrollo y tenemos 76 00:10:10,940 --> 00:10:17,019 que solucionarlo porque está dando errores evolutivo porque se nos ha pedido algo adicional 77 00:10:17,019 --> 00:10:22,600 a nuestro programa que tenemos que incluir donde nos encontramos nosotros en esta asignatura nos 78 00:10:22,600 --> 00:10:30,019 encontramos principalmente en estas dos fases. Y en particular en esta, que es realizar nuestros 79 00:10:30,019 --> 00:10:37,519 programas en Java. Todas estas fases en la asignatura de entornos de desarrollo, 80 00:10:41,190 --> 00:10:47,110 dedicaréis algunos temas, hablar un poquito de ellas y muy en particular en la parte de diseño, 81 00:10:47,330 --> 00:10:53,549 trabajaréis con diagramas de UML casi con toda seguridad. En la parte de pruebas haréis pruebas 82 00:10:53,549 --> 00:10:57,590 de caja blanca, de caja negra, digamos que en torno al desarrollo 83 00:10:57,590 --> 00:11:01,629 tiene un recorrido más por todo este ciclo de vida y programación 84 00:11:01,629 --> 00:11:05,529 en particular por en lo que vendría a ser el 85 00:11:05,529 --> 00:11:15,980 desarrollo. Una vez que hemos ubicado un poco Java en los lenguajes 86 00:11:15,980 --> 00:11:19,940 de programación y en la fase donde trabajamos 87 00:11:19,940 --> 00:11:22,120 pues otra cosa que os comentaba es 88 00:11:22,120 --> 00:11:28,000 algunos conceptos así como muy generales, una visión muy general de la programación orientada 89 00:11:28,000 --> 00:11:33,919 objetos. Al ser de alto nivel, intenta acercarse a nuestra forma de ver los problemas. Y os ponía 90 00:11:33,919 --> 00:11:41,500 como ejemplo el desarrollo de una clase, de la tutoría sobre la que estábamos trabajando. 91 00:11:41,500 --> 00:11:51,250 Entonces decíamos, vamos a intentar identificar qué actores participan en el desarrollo de una 92 00:11:51,250 --> 00:11:58,210 clase. Y decíamos, bueno, pues parece razonable que haya un profesor, que haya algún profesor, 93 00:11:58,210 --> 00:12:05,250 Parece razonable que haya alumnos y, bueno, decíamos, parece razonable que la clase se desarrolle en un aula. 94 00:12:05,750 --> 00:12:11,870 En principio, en nuestro contexto, para dar respuesta a los requisitos, que sería el enunciado del problema que queremos hacer, 95 00:12:12,509 --> 00:12:14,950 estos son los actores que pensamos podrían participar. 96 00:12:15,909 --> 00:12:23,049 En la programación orientada a objetos, lo que hacemos es que para cada uno de estos actores, identificaremos una clase. 97 00:12:23,049 --> 00:12:41,049 En la programación orientada a objetos, uno de los términos clave, una de las palabras clave son las clases. Las clases son esquemas de qué caracteriza a un determinado profesor en este ejercicio, porque hablaremos de la clase profesor y qué acciones es capaz de hacer. 98 00:12:41,049 --> 00:12:57,950 Entonces nosotros cogeremos y en nuestro programa, dentro del código diremos, vamos a definir una clase, aparecen otras palabras por ahí de las que iremos hablando durante el curso, la clase profesor, es decir, en nuestro programa va a participar algún profesor en algún momento. 99 00:12:57,950 --> 00:13:13,710 Y los profesores tienen unas determinadas características. Todo lo que define al profesor, ponemos esta cabecera o asignatura como firma de la clase, que es un término que se utiliza, y lo encerramos entre una apertura de llave y un cierre de llave. 100 00:13:13,710 --> 00:13:20,690 Todo lo que tenga que ver con la clase profesor va a estar definido dentro de este ámbito, de estas llaves. 101 00:13:21,230 --> 00:13:27,210 ¿Y qué definimos en toda clase en la programación orientada a objetos, sea Java o sea cualquier otro de los lenguajes? 102 00:13:27,789 --> 00:13:30,990 Definimos unos determinados parámetros o características. 103 00:13:37,149 --> 00:13:44,850 Estos parámetros son de diferentes tipos y será, por ejemplo, los profesores tienen una edad. 104 00:13:44,850 --> 00:13:52,610 Sí, dentro del contexto nos parece que puede ser relevante en el programa la edad que tienen los profesores, porque el enunciado en algún momento así lo define. 105 00:13:53,129 --> 00:14:09,950 Los profesores pueden tener un nombre, y los profesores pueden tener un número de la seguridad social, y NUMSEC, porque como el desarrollo de la clase se realiza en el ámbito de trabajo, pues igual este dato en este programa podría llegar a ser importante. 106 00:14:10,950 --> 00:14:13,289 Estas son características que tendrán los profesores. 107 00:14:13,490 --> 00:14:22,129 A todo profesor que participe en nuestro programa le podremos dar una edad, un nombre y un número de la seguridad social. 108 00:14:22,129 --> 00:14:26,070 Son los parámetros, características o atributos. 109 00:14:27,389 --> 00:14:32,570 Son formas de llamar a estas características que se definen en las clases. 110 00:14:32,570 --> 00:14:41,570 Y luego los profesores pueden realizar una serie de acciones que las identificamos como métodos. 111 00:14:43,840 --> 00:14:51,100 Entonces, esta serie de acciones típicamente aparecen como verbos, public, y será, por ejemplo, el método saluda. 112 00:14:54,259 --> 00:15:00,379 Y los métodos suelen llevar aquí una apertura y cierre de corchetes, a veces con información aquí dentro, 113 00:15:00,379 --> 00:15:07,460 y haremos desarrollándolo. Y fijaros que hemos utilizado un verbo. Normalmente los métodos, como son acciones, 114 00:15:07,460 --> 00:15:11,220 pues aparecerán con verbos, los atributos pues no aparecerán con verbos 115 00:15:11,220 --> 00:15:16,840 porque no son acciones, son características que puedan tener. Entonces cuando un profesor 116 00:15:16,840 --> 00:15:20,860 que participe en nuestro programa quiera realizar la acción de saludar 117 00:15:20,860 --> 00:15:24,980 lo que el programa pondrá en marcha será aquel código que 118 00:15:24,980 --> 00:15:28,960 pongamos aquí entre las llaves de apertura y cierre del método 119 00:15:28,960 --> 00:15:32,399 saludar. Además un profesor podrá 120 00:15:32,399 --> 00:15:38,919 poner 121 00:15:38,919 --> 00:15:49,450 tarea. Pues cuando durante el programa queramos que un profesor ponga tarea, invocaremos de alguna 122 00:15:49,450 --> 00:15:54,830 forma a este método poner tarea que está relacionado con la clase profesor y la serie de actividades 123 00:15:54,830 --> 00:16:00,970 que serán serán aquellas que nosotros codifiquemos en nuestro lenguaje en Java dentro de las llaves 124 00:16:00,970 --> 00:16:09,279 del método poner tarea. Pero esto quiere decir la clase profesor que haya un profesor haciendo 125 00:16:09,279 --> 00:16:14,419 cosas en nuestro programa. No, las clases vendrían a ser un esquema de las características y las 126 00:16:14,419 --> 00:16:19,340 acciones que van a ser capaces de hacer los profesores, pero todavía no ha cobrado vida 127 00:16:19,340 --> 00:16:26,000 ningún profesor en nuestro programa para llevar a cabo esa acción. Otro de los actores que hemos 128 00:16:26,000 --> 00:16:33,919 visto es la clase alumno. En la clase alumno podríamos coger e identificarla también dentro 129 00:16:33,919 --> 00:16:39,159 de nuestro código. En este caso pondríamos aquí la clase alumno y aquí tendríamos las características 130 00:16:39,159 --> 00:16:43,639 y atributos que tienen en este caso los alumnos, porque los estamos definiendo dentro del ámbito 131 00:16:43,639 --> 00:16:48,799 de la clase alumno. Puede ser que el número de la seguridad social no sea relevante para el alumno, 132 00:16:48,960 --> 00:16:56,480 pero sí el número de asignaturas en las que están matriculados. Este es un atributo que caracteriza 133 00:16:56,480 --> 00:17:00,440 a los alumnos y no tiene nada que ver con los profesores. En cambio, el número de seguridad 134 00:17:00,440 --> 00:17:06,880 social es un atributo que caracteriza a profesores y nada que ver con alumnos. En cambio, hay algunas 135 00:17:06,880 --> 00:17:11,619 características que son comunes por el hecho de ser personas, tanto profesores como alumnos, 136 00:17:11,619 --> 00:17:15,079 que es que tengan un nombre y una edad, pues bueno, pues puede aparecer en las dos clases. 137 00:17:16,539 --> 00:17:23,019 De la igual forma que los parámetros, tenemos los métodos, que son las acciones que van a hacer los alumnos en nuestro programa. 138 00:17:23,279 --> 00:17:30,059 Vamos a considerar que los alumnos también podrán saludar, y a lo mejor este código es diferente, vamos a ponerlo con máses, 139 00:17:31,099 --> 00:17:34,619 cuando saluda un alumno, a lo mejor saluda de forma diferente a cuando saluda un profesor, 140 00:17:34,740 --> 00:17:40,359 por eso aquí podemos poner el código Java diferente, cuando realice la acción de saludar al profesor, 141 00:17:40,359 --> 00:17:42,440 a cuando la realice el alumno. 142 00:17:43,420 --> 00:17:48,079 Y los alumnos, pues igual no tienen que poner tarea, 143 00:17:48,420 --> 00:17:50,200 si tienen que hacer la acción de estudiar. 144 00:17:50,420 --> 00:17:53,279 Pues aquí pondremos la acción de estudiar para el alumno 145 00:17:53,279 --> 00:17:56,079 y el código que se ejecuta cada vez que solicitemos 146 00:17:56,079 --> 00:17:58,319 que un alumno quiera estudiar. 147 00:18:00,039 --> 00:18:06,519 Insisto en que las clases no identifican a un profesor en particular, 148 00:18:06,640 --> 00:18:08,640 la de arriba, ni a diferentes alumnos, 149 00:18:08,640 --> 00:18:14,900 sino que son los esquemas de características y acciones que van a realizar tanto profesores como alumnos cuando cobren vida. 150 00:18:16,920 --> 00:18:22,420 En una puesta en marcha de nuestro programa en particular, podríamos suponer que hay un profesor que se llama José 151 00:18:22,420 --> 00:18:31,059 y tres alumnos que se llaman Rubén, Sandra, Noah, vamos a poner un cuarto, y Valeria, estos cuatro alumnos. 152 00:18:33,559 --> 00:18:40,200 El profesor José, cuando cobre vida, estos que son los que le van a cobrar vida, serán objetos, 153 00:18:40,200 --> 00:18:43,119 que son todos los términos que aparecen en la programación 154 00:18:43,119 --> 00:18:46,640 orientada a objetos, fijaros que lo lleva el propio nombre de la programación 155 00:18:46,640 --> 00:18:49,559 son objetos de estas clases 156 00:18:49,559 --> 00:18:52,859 es decir, son instancias que de verdad participan 157 00:18:52,859 --> 00:18:54,460 que cobran vida de esas características 158 00:18:54,460 --> 00:18:58,599 entonces cuando José, que lo vamos a considerar un profesor 159 00:18:58,599 --> 00:19:00,799 queramos darlo de alta en nuestro programa, diremos 160 00:19:00,799 --> 00:19:04,960 del tipo profesor hay uno que se llama José 161 00:19:04,960 --> 00:19:07,740 es decir, José será un profesor 162 00:19:07,740 --> 00:19:10,140 entonces a José le podremos poner una edad 163 00:19:10,140 --> 00:19:11,920 de esta forma, poniendo ahí edad 164 00:19:11,920 --> 00:19:13,880 y ¿por qué le podemos poner una edad 165 00:19:13,880 --> 00:19:16,160 a José, que es un profesor? 166 00:19:16,319 --> 00:19:17,700 porque dentro de la clase profesor 167 00:19:17,700 --> 00:19:19,920 hemos definido una característica que es la edad 168 00:19:19,920 --> 00:19:23,250 entonces podemos decir que tiene 169 00:19:23,250 --> 00:19:24,450 30 años 170 00:19:24,450 --> 00:19:26,890 a José le podemos poner un nombre 171 00:19:26,890 --> 00:19:29,869 ¿por qué? porque es una de las características 172 00:19:29,869 --> 00:19:31,430 o de los parámetros que hemos definido 173 00:19:31,430 --> 00:19:33,289 para la clase profesor 174 00:19:33,289 --> 00:19:35,349 entonces cogemos y decimos que 175 00:19:35,349 --> 00:19:37,569 JM 176 00:19:37,569 --> 00:19:39,589 y José será capaz 177 00:19:39,589 --> 00:19:41,609 de saludar, si ponemos aquí 178 00:19:41,609 --> 00:19:50,190 jose saludar, decimos que jose, que es un profesor, realice la 179 00:19:50,190 --> 00:19:53,569 acción de saludar. Y jose, como es un profesor, no venimos a 180 00:19:53,569 --> 00:19:56,809 profesor, buscamos saludar y vemos que efectivamente es una 181 00:19:56,809 --> 00:20:00,309 de las acciones que son capaces de hacer los profesores y 182 00:20:00,309 --> 00:20:04,309 durante este proceso de saludo, lo que hará será las acciones 183 00:20:04,309 --> 00:20:07,450 que hayamos identificado en el método de saludar aquí en este 184 00:20:07,450 --> 00:20:11,950 código. Igual que hemos hecho para jose, bueno, esto tiene una 185 00:20:11,950 --> 00:20:14,369 sintaxis Java regular 186 00:20:14,369 --> 00:20:16,349 es muy parecida pero habría que hacer 187 00:20:16,349 --> 00:20:16,990 más cosas 188 00:20:16,990 --> 00:20:20,109 Rubén que es un alumno, pues podríamos definir 189 00:20:20,109 --> 00:20:20,730 un alumno 190 00:20:20,730 --> 00:20:22,769 que es Rubén 191 00:20:22,769 --> 00:20:25,789 y ahora a Rubén podríamos darle 192 00:20:25,789 --> 00:20:27,769 por ser un alumno, un nombre 193 00:20:27,769 --> 00:20:31,700 una edad 194 00:20:31,700 --> 00:20:34,079 podríamos decir que está matriculado 195 00:20:34,079 --> 00:20:36,240 un número de asignaturas y podríamos ponerla 196 00:20:36,240 --> 00:20:38,160 a estudiar, entonces Rubén haría estas acciones 197 00:20:38,160 --> 00:20:39,279 cuando Rubén estudias 198 00:20:39,279 --> 00:20:40,960 vamos a poner Rubén a estudiar 199 00:20:40,960 --> 00:20:48,819 otro alumno que podría ser Valeria 200 00:20:48,819 --> 00:20:54,509 lo identificamos en el programa como Valeria 201 00:20:54,509 --> 00:20:58,109 y podríamos decir que Valeria tiene 202 00:20:58,109 --> 00:21:05,339 tiene 10 años 203 00:21:05,339 --> 00:21:07,400 o 15 años 204 00:21:07,400 --> 00:21:11,380 fijaros como Rubén y Valeria 205 00:21:11,380 --> 00:21:15,440 tienen un mismo esquema de características y de comportamiento 206 00:21:15,440 --> 00:21:18,299 pero cada uno empieza a tener sus peculiaridades 207 00:21:18,299 --> 00:21:20,819 en el momento en que a Rubén le podemos dar una edad 208 00:21:20,819 --> 00:21:22,079 y a Valeria otra distinta 209 00:21:22,079 --> 00:21:25,819 fijaros que nuestro programa empieza a cobrar vida 210 00:21:25,819 --> 00:21:28,000 y empieza a hacer cosas en el momento que instanciamos 211 00:21:28,000 --> 00:21:29,940 objetos de las clases para las cuales 212 00:21:29,940 --> 00:21:31,480 hemos definido sus esqueletos 213 00:21:31,480 --> 00:21:33,880 y toda esta interacción será la que 214 00:21:33,880 --> 00:21:35,880 buscará, la que tendrá el objetivo 215 00:21:35,880 --> 00:21:37,759 de dar respuesta al algoritmo 216 00:21:37,759 --> 00:21:40,359 que implemente los requisitos 217 00:21:40,359 --> 00:21:42,000 que nos habíamos planteado 218 00:21:42,000 --> 00:21:45,940 para este problema, así como un esquema 219 00:21:45,940 --> 00:21:48,079 general, haremos mil clases durante el curso 220 00:21:48,079 --> 00:21:50,039 y bueno, pues ya 221 00:21:50,039 --> 00:21:53,519 iréis viendo, esta es la diferencia 222 00:21:53,519 --> 00:21:54,839 entre clases y objetos 223 00:21:54,839 --> 00:21:57,460 dos elementos de los que 224 00:21:57,460 --> 00:21:59,079 aparecen en la programación orientada a objetos 225 00:21:59,079 --> 00:22:00,359 y tienen mucha presencia. 226 00:22:04,640 --> 00:22:06,720 Mirad, lo siguiente de lo que hablábamos 227 00:22:06,720 --> 00:22:08,940 era de, en la tutoría, 228 00:22:09,119 --> 00:22:10,859 estoy como concentrándolo todo mucho, 229 00:22:11,039 --> 00:22:12,839 pero intentando no dejarme ningún detalle. 230 00:22:13,039 --> 00:22:13,940 Si luego falta alguno, 231 00:22:14,039 --> 00:22:15,299 pues ya me preguntáis en los foros 232 00:22:15,299 --> 00:22:16,900 y os comento. 233 00:22:18,119 --> 00:22:19,720 Decíamos que los programas 234 00:22:19,720 --> 00:22:21,920 los realizamos a través de entornos de desarrollo, 235 00:22:22,220 --> 00:22:22,599 IDES. 236 00:22:23,160 --> 00:22:25,019 IDES son las siglas 237 00:22:25,019 --> 00:22:29,799 Integrated Development Environment, 238 00:22:30,019 --> 00:22:30,859 entornos de desarrollo. 239 00:22:30,859 --> 00:22:34,700 Cuando vamos a hacer un programa, pues primero tenemos que escribir su código. 240 00:22:35,119 --> 00:22:38,440 Entonces lo hacemos en un ficherito que tenga extensión .java. 241 00:22:39,720 --> 00:22:47,180 Como es un lenguaje Java interpretado, tendremos que compilarlo. 242 00:22:49,380 --> 00:22:57,740 Compilar un programa en Java se realiza con un ejecutable que es Java, compilador de Java. 243 00:22:58,559 --> 00:23:03,720 Y luego para de verdad ejecutarlo, tendremos que llamar el intérprete. 244 00:23:03,720 --> 00:23:15,019 ¿Os acordáis que os hablaba antes del intérprete? Pues el intérprete en Java se llama Java, que será diferente para cada plataforma hardware y el compilador será común en todas ellas. 245 00:23:15,019 --> 00:23:40,890 Entonces, cuando nosotros trabajamos con un ordenador como clientes, que es lo más habitual, no como desarrolladores, que es el rol en el que estáis vosotros dentro de la asignatura, lo único que queremos es llamar al intérprete para programas ya desarrollados en Java, de los cuales nos habrán de alguna forma entregado el bytecode. 246 00:23:40,890 --> 00:24:00,369 Igual va integrado dentro de otra aplicación, no lo vemos tal cual, pero sería el resultado de haber compilado a alguien, un programador, un programa, nos da el bytecode que probablemente esté en un fichero .class o en un fichero .hard porque de alguna forma han comprimido muchos .class para que hagan una función más global. 247 00:24:00,369 --> 00:24:27,690 Y esto nosotros lo lanzaremos como usuarios normales con nuestro intérprete Java. Nosotros no somos en principio conscientes de que tenemos un intérprete en nuestra máquina, pero junto con el resto del software, sistema operativo, está ese intérprete que cuando lancemos nosotros la solicitud de ejecutar el bytecode, se pondrá en marcha y será capaz de interpretarlo y darnos el resultado que el programa tenga en marcha. 248 00:24:27,690 --> 00:24:32,190 si nosotros queremos coger el rol de desarrolladores 249 00:24:32,190 --> 00:24:34,970 entonces sí que tenemos que compilar el programa 250 00:24:34,970 --> 00:24:39,589 y el compilador normalmente no está integrado en nuestros ordenadores 251 00:24:39,589 --> 00:24:43,029 ¿por qué? porque en nuestro día a día la gente no suele ser compilador 252 00:24:43,029 --> 00:24:44,690 no suele ser programadora de Java 253 00:24:44,690 --> 00:24:48,930 entonces lo que tenemos que hacer es instalar el JDK 254 00:24:48,930 --> 00:24:53,789 JDK son las siglas de Java Development Kit 255 00:24:53,789 --> 00:25:03,150 de desarrollo para realizar programas en Java y este JDK es el que incluye el compilador de Java 256 00:25:03,150 --> 00:25:13,410 y el JDK también instala ya un JRE que está relacionado con JRE que es el Java Runtime Environment 257 00:25:13,410 --> 00:25:21,529 en torno de ejecución de Java que digamos que es el que podría tener el intérprete. 258 00:25:21,529 --> 00:25:46,250 En definitiva, para poder compilar nuestros programas hechos en C, necesitamos un compilador que viene integrado en este paquete y en vuestro ordenador. Si vosotros no queréis utilizar la máquina virtual que os proporciono yo en el aula, tendréis que instalar el JDK y si utilizáis la máquina virtual que os he proporcionado, pues ya me he preocupado yo de que esté integrada. 259 00:25:46,250 --> 00:25:51,230 nosotros pasito a pasito podemos utilizar un editor 260 00:25:51,230 --> 00:25:55,089 para hacer nuestro fichero .java, llamar 261 00:25:55,089 --> 00:25:58,990 al compilador para obtener el bytecode 262 00:25:58,990 --> 00:26:02,470 y luego llamar al intérprete que es java 263 00:26:02,470 --> 00:26:07,109 para ver el resultado de nuestro programita, esto lo podemos hacer pasito 264 00:26:07,109 --> 00:26:11,289 a pasito o podemos utilizar un IDE que integra todas estas aplicaciones 265 00:26:11,289 --> 00:26:15,390 y además nos da muchísimos más servicios para que nos vaya resultando 266 00:26:15,390 --> 00:26:20,009 cuando estemos haciendo grandes proyectos no vaya resultando más fácil que no tener que trabajar 267 00:26:20,009 --> 00:26:26,210 con herramientas tan con herramientas tan simples como las que os comentaba las formas hoy vamos a 268 00:26:26,210 --> 00:26:32,789 hacer un pequeño un mini programa típico programa hola mundo utilizando permitirme la expresión a 269 00:26:32,789 --> 00:26:45,410 pelo estas herramientas e ignorando de momento el id vamos a ello la máquina no está no es la 270 00:26:45,410 --> 00:26:49,690 máquina virtual la máquina virtual la tengo por aquí abrimos un terminal en la máquina virtual 271 00:26:50,869 --> 00:26:57,710 que os he pasado y bueno la máquina virtual está basada en una versión de debian con el 272 00:26:57,710 --> 00:27:03,130 jd que ha instalado tiene un y de que se clase instalado otro y de que no vamos a utilizar pero 273 00:27:03,130 --> 00:27:09,289 el de uso muy didáctico por si alguien quiere investigar un poquito que es el blue jota y tiene 274 00:27:09,289 --> 00:27:16,569 aquí instalado también PSINT que nos sirve para definición de pseudocódigo, que es algo que 275 00:27:16,569 --> 00:27:20,809 trabajaréis más en entornos de desarrollo, aunque en este tema 1 de programación os hablo algo de 276 00:27:20,809 --> 00:27:28,170 ello y no voy a entrar mucho en detalle porque en realidad se escapa un poco del ámbito de lo que 277 00:27:28,170 --> 00:27:35,250 pedimos en programación y dedicaré más el tiempo a Java más que a PSINT, independientemente como os 278 00:27:35,250 --> 00:27:39,490 decía ayer de que si tenéis alguna duda me la preguntéis en el foro e intento 279 00:27:39,490 --> 00:27:46,750 echaros una mano. Ahora voy a hacer algunas cuantas cosas que son 280 00:27:46,750 --> 00:27:53,509 comandos en terminal de linux que no tenéis por qué conocer y no os 281 00:27:53,509 --> 00:27:57,630 preocupéis en exceso porque tampoco van a ser requisito para esta asignatura. Si 282 00:27:57,630 --> 00:28:00,710 en la asignatura en sistemas informáticos trabajaréis con estos 283 00:28:00,710 --> 00:28:05,470 comandos, ahí os los pedirán, yo no, pero bueno para enseñaros ciertas cosas es 284 00:28:05,470 --> 00:28:12,170 imprescindible tener que utilizarlos y hacer comando which nos permite localizar un programa 285 00:28:12,170 --> 00:28:17,289 ejecutable dentro del sistema archivo en linux entonces por ejemplo el intérprete java se pone 286 00:28:17,289 --> 00:28:25,019 el wish java nos dice que se encuentra en esta ruta este sistema operativo linux organiza los 287 00:28:25,019 --> 00:28:31,599 directorios y los archivos empezando en algo que es una barra que podría ser el equivalente en 288 00:28:31,599 --> 00:28:36,400 windows para los que estén más familiarizados con una unidad de disco por ejemplo la unidad 289 00:28:36,400 --> 00:28:41,259 de disco c o la unidad de disco de esa parte de ahí hay directorios de ahí cuelgan otros 290 00:28:41,259 --> 00:28:47,819 directorios en algunos también hay archivos en linux es un poco la misma idea lo único que en 291 00:28:47,819 --> 00:28:54,839 lugar de empezar con una unidad de disco empezamos con la barra y en particular el intérprete de java 292 00:28:54,839 --> 00:28:59,880 se encuentra en esta ruta que si os fijáis por aquí dentro de la ruta aparece algo como jdk 293 00:28:59,880 --> 00:29:04,160 que es ese Java Development Kit, ese entorno 294 00:29:04,160 --> 00:29:07,960 de desarrollo, digamos, que he instalado yo en este Debian 295 00:29:07,960 --> 00:29:19,640 para que podamos realizar programas con él. Aquí, ayer 296 00:29:19,640 --> 00:29:23,660 había realizado, había creado un directorio 297 00:29:23,660 --> 00:29:26,960 prueba que en Linux se puede crear con mkdir 298 00:29:26,960 --> 00:29:31,519 vamos a poner un prueba2, pues ahora 299 00:29:31,519 --> 00:29:35,180 si pongo un ls que nos lista la información que hay dentro de 300 00:29:35,180 --> 00:29:40,000 dentro de un directorio en particular pues ya veremos que tenemos prueba y probados que acabo 301 00:29:40,000 --> 00:29:49,480 de crear en el directorio prueba que hice ayer tenemos esta información voy a borrar los ficheros 302 00:29:49,480 --> 00:30:03,000 que no me interesan voy a borrar todo si lo hago desde cero vamos a crear un fichero que vamos a 303 00:30:03,000 --> 00:30:11,220 llamar prueba o hola y vamos a poner extensión punto java porque en punto en ficheros con 304 00:30:11,220 --> 00:30:17,980 extensión punto java es donde ponemos nosotros nuestro código en este lenguaje y aquí vamos a 305 00:30:17,980 --> 00:30:24,759 poner código que es código java definimos una clase que vendría a ser una clase del estilo de 306 00:30:24,759 --> 00:30:29,359 la persona o alumno de las que os hablaba antes pues sería un actor que participaría en nuestro 307 00:30:29,359 --> 00:30:36,539 programa y dentro de esta clase ponemos unas llaves que identifican el ámbito donde trabaja 308 00:30:36,539 --> 00:30:45,220 esta clase. Vamos a poner pública aquí, ya os contaré estas etiquetas para qué sirven. Dentro de la clase 309 00:30:45,220 --> 00:30:50,680 hola vamos a definir un método de los que hablábamos antes, algo que va a realizar una 310 00:30:50,680 --> 00:30:58,299 acción. Entonces hay todo programa cuando proyecto en java cuando lo vamos a realizar tiene un punto 311 00:30:58,299 --> 00:31:09,720 de inicio y este punto de inicio es un método que se llama main el método principal que tiene aquí 312 00:31:09,720 --> 00:31:15,579 he puesto unas cuantas palabritas que iremos conociendo etiquetas main el nombre del método 313 00:31:15,579 --> 00:31:24,720 como decía los métodos van entre llaves y a veces pueden tener cierta información aquí esto 314 00:31:24,720 --> 00:31:29,579 probablemente el próximo día os lo cuente y si no algo más algo más adelante pero de momento 315 00:31:29,579 --> 00:31:33,579 no os preocupéis demasiado. Simplemente sabéis que este método es el punto 316 00:31:33,579 --> 00:31:36,740 de inicio desde el que igual se va a ejecutar nuestro programa. 317 00:31:37,740 --> 00:31:40,619 ¿Y qué vamos a hacer en este main? Vamos a utilizar 318 00:31:40,619 --> 00:31:50,529 un método que es el método println 319 00:31:50,529 --> 00:31:55,170 que está definido en una clase que es la clase 320 00:31:55,170 --> 00:31:58,869 system.out. Y diremos, esta clase no la hemos definido. 321 00:31:59,190 --> 00:32:02,910 Efectivamente, tenemos bastante suerte y es algo común 322 00:32:02,910 --> 00:32:08,910 a muchos de los lenguajes y es que cuando se realiza un lenguaje aparte se crea un montón 323 00:32:08,910 --> 00:32:13,970 de código para que se lleven a cabo ciertas acciones que típicamente vamos a utilizar 324 00:32:13,970 --> 00:32:19,690 nuestros programas y de esta forma no tengamos en cada uno de nuestros programas que implementar 325 00:32:19,690 --> 00:32:27,069 ese código. En particular System.out, hablaremos de ello, lo que hace es sacar por consola, 326 00:32:27,069 --> 00:32:35,009 por la pantallita algo que imprime y en este caso va a ser hola dam sería un primer hola mundo 327 00:32:35,009 --> 00:32:41,349 entonces el código java que tenemos entre manos es la clase hola el método main punto de inicio de 328 00:32:41,349 --> 00:32:47,829 mi proyecto y lo único que hace este método es mostrar por pantalla con un println hola mundo 329 00:32:47,829 --> 00:32:59,279 hola dam perdón este println está en realidad codificado en algún sitio que donde es en las 330 00:32:59,279 --> 00:33:01,640 librería de Java y está disponible 331 00:33:01,640 --> 00:33:03,640 porque se importa en nuestro proyecto 332 00:33:03,640 --> 00:33:05,680 lo tenemos importado en nuestro proyecto 333 00:33:05,680 --> 00:33:07,460 para poder utilizarlo 334 00:33:07,460 --> 00:33:09,339 junto al resto del código Java 335 00:33:09,339 --> 00:33:10,920 que sí que pongamos nosotros 336 00:33:10,920 --> 00:33:13,440 y que intentará dar solución particular 337 00:33:13,440 --> 00:33:15,180 a los requisitos que se nos piden 338 00:33:15,180 --> 00:33:18,779 para nuestro programa. Bueno, una vez 339 00:33:18,779 --> 00:33:20,900 hecho nuestro ficherito 340 00:33:20,900 --> 00:33:22,519 Java con un editor 341 00:33:22,519 --> 00:33:25,299 comando more en Linux nos permite 342 00:33:25,299 --> 00:33:27,359 ver el contenido sin editarlo, fijaros 343 00:33:27,359 --> 00:33:28,079 ahí lo tenemos 344 00:33:28,079 --> 00:33:31,099 ¿Qué es lo que tenemos que hacer? Hemos dicho 345 00:33:31,099 --> 00:33:35,420 con un programa punto java pues lo primero que tenemos que hacer es compilar lo cual era el 346 00:33:35,420 --> 00:33:41,960 compilador de java javas como podemos ver dónde se encuentra pues con el comando wii 347 00:33:43,480 --> 00:33:52,690 entonces llamamos a este programa compilador de java que está en esta ruta digamos y decimos que 348 00:33:52,690 --> 00:33:59,690 lo que queremos es compilar el código que hemos puesto nosotros el lenguaje java se toma un 349 00:33:59,690 --> 00:34:04,410 momentito y ahora si hacemos un ls aquí vemos que junto con el o la punto java ya tenemos el 350 00:34:04,410 --> 00:34:13,510 hola.class y este hola.class ya no está desarrollado en código java tal cual, sino que está en bytecode. 351 00:34:13,829 --> 00:34:21,389 De hecho, si ponemos aquí un mor de hola.class, vemos que ya nos entiende el código con tanta facilidad 352 00:34:21,389 --> 00:34:27,889 como el .java, aunque sí que vemos algunas palabras por ahí. Pero es ese bytecode que vas a ver el intérprete 353 00:34:27,889 --> 00:34:37,010 de java leer para convertirlo al código máquina que es donde se está ejecutando el programa que 354 00:34:37,010 --> 00:34:46,840 será dependiente de la plataforma hardware cuál es el intérprete de java hemos dicho java que 355 00:34:46,840 --> 00:34:55,829 donde se encuentra pues se encuentra en la misma ruta que el compilador entonces para aquí es donde 356 00:34:55,829 --> 00:35:06,139 tenemos el bytecode fijaros para ejecutar nuestro programa vamos al intérprete e indicamos 357 00:35:07,980 --> 00:35:13,340 el bytecode que sería en principio punto clas pero el intérprete me gusta más que no se lo 358 00:35:13,340 --> 00:35:17,860 pongamos el punto clase entonces vamos aquí y fijaros como el resultado de nuestro programa 359 00:35:17,860 --> 00:35:25,619 es que nos muestra por pantalla hola damm que realmente lo que habíamos puesto nosotros que 360 00:35:25,619 --> 00:35:29,900 sucediese cuando se ejecutase el método main que es el punto inicio el programa hacia una 361 00:35:29,900 --> 00:35:36,619 salida por pantalla de hola dam y efectivamente si volvemos a lanzar la ejecución es el resultado 362 00:35:36,619 --> 00:35:45,150 que obtenemos es decir hemos con el editor nano editado un fichero punto java hemos metido ahí 363 00:35:45,150 --> 00:35:51,929 el código lo hemos compilado con el compilador java nos ha dado el base code con el fichero con 364 00:35:51,929 --> 00:35:59,730 extensión punto clash y hemos llamado al intérprete java y nos ha lanzado la ejecución convirtiendo 365 00:35:59,730 --> 00:36:01,869 ese bytecode al código máquina 366 00:36:01,869 --> 00:36:03,530 que entiende la plataforma 367 00:36:03,530 --> 00:36:05,070 donde está corriendo 368 00:36:05,070 --> 00:36:07,730 la plataforma hardware y nos ha soltado 369 00:36:07,730 --> 00:36:08,809 el holadam este 370 00:36:08,809 --> 00:36:13,940 dicho esta, esta secuencia es la última 371 00:36:13,940 --> 00:36:15,820 vez que vamos a utilizar ya, vamos a hacer 372 00:36:15,820 --> 00:36:17,920 un programita, aunque este era muy sencillote 373 00:36:17,920 --> 00:36:19,940 a través de un terminal, a partir 374 00:36:19,940 --> 00:36:21,719 de ahora ya utilizaremos IDES 375 00:36:21,719 --> 00:36:23,880 que nos resultan mucho más cómodos 376 00:36:23,880 --> 00:36:25,300 para ir haciendo nuestros programas 377 00:36:25,300 --> 00:36:27,860 entre los IDES 378 00:36:27,860 --> 00:36:29,659 hay diferentes, está 379 00:36:29,659 --> 00:36:39,750 de DIN, si está Eclipse, Intelij, bueno pues yo he elegido Eclipse. Si alguien quiere utilizar 380 00:36:39,750 --> 00:36:44,030 algún otro, no es un inconveniente para la asignatura porque nos vamos a centrar en Java. 381 00:36:44,809 --> 00:36:50,170 Bueno, si elegís otro y tenéis que hacer alguna cosa en la opción de menú en particular, pues yo 382 00:36:50,170 --> 00:36:54,949 estaré menos familiarizado, igual os puede ayudar un poquito menos, pero si alguien 383 00:36:54,949 --> 00:37:01,969 ya viene programando desde hace tiempo y le apetece utilizar otro, pues no es problema. 384 00:37:02,250 --> 00:37:21,659 Bueno, ayer cuando abríamos no había nada. Hoy ya tenemos el ejercicio de ayer, el hola mundo desde Eclipse. Y os cuento un poquito lo que os decía, aunque no cogeis los programas desde cero, o si ya veremos. 385 00:37:21,659 --> 00:37:35,519 Mirad, cuando Eclipse empieza a guardar toda la información de los trabajos, de los proyectos que hagamos en un espacio de trabajo que podemos nosotros seleccionar cuando instalamos por primera vez Eclipse. 386 00:37:36,260 --> 00:37:44,699 ¿Dónde dije yo que tuviese su espacio de trabajo la instalación de Eclipse que tenemos en nuestra máquina virtual? 387 00:37:45,300 --> 00:37:54,079 Pues en el directorio pwd nos dice el directorio actual, barra home, barra devian, y cree un directorio que se llama Eclipse Workspace. 388 00:37:54,679 --> 00:38:06,380 Si nos vamos a este directorio, veréis que existe dentro del espacio de trabajo Eclipse, existe un único directorio, que es el directorio hola, 389 00:38:06,380 --> 00:38:29,510 Que coincide con el proyecto que habíamos creado ayer. Vamos a crear otro proyecto diferente. Vamos a poner el proyecto Hola2. Automáticamente se ha venido aquí y ha creado un directorio Hola para un primer proyecto, un directorio Hola2 para un segundo proyecto. 390 00:38:29,510 --> 00:38:47,880 Os comentaba también ayer que a la hora de crearse un proyecto, de momento vacío, o la 2, se crea este ficherito que permite meter unas directrices para ver cómo luego diferentes clases en proyectos grandes son capaces de interactuar unas con otras. 391 00:38:48,639 --> 00:39:02,000 Al menos de momento, para nuestros programas que van a ser muy pequeños, vamos a borrar esto. No vamos a querer considerarlo, que nos va a traer inicialmente más problemas que beneficios, aunque a la larga para proyectos grandes es algo que podría llegar a resultarnos útil. 392 00:39:02,679 --> 00:39:19,179 tenemos nuestro proyecto y el proyecto si nos venimos aquí, fijaros se ha creado la 2, si pongo aquí o la 2, me voy a la 2, tenemos dos directorios, uno src y otro bin, en el src es donde se van a ir guardando 393 00:39:19,179 --> 00:39:25,119 los ficheros que vayamos creando punto java es decir con el código fuente y una vez compilados 394 00:39:25,119 --> 00:39:32,239 se irán guardando en el directorio bien es decir como una vez compilados se irán creando aquí los 395 00:39:32,239 --> 00:39:37,800 ficheros punto clash que serán los que tengan el base code de aquellos ficheros punto java con 396 00:39:37,800 --> 00:39:46,010 código fuente que tengamos en sr vamos a crear una clase para replicar el ejercicio que habíamos 397 00:39:46,010 --> 00:39:50,210 dicho antes aquí desde terminal, en este proyecto, entonces cogemos 398 00:39:50,210 --> 00:39:54,090 y decimos new class, y esta class 399 00:39:54,090 --> 00:40:01,539 la vamos a llamar hola2. Fijaros, hola2, aquí 400 00:40:01,539 --> 00:40:05,480 nos muestra el clase, un fichero con extensión .java, y si nos venimos aquí 401 00:40:05,480 --> 00:40:09,420 ahora, cdsrc, nos ha metido 402 00:40:09,420 --> 00:40:13,280 ese ficherito .java en la ruta del proyecto hola2 403 00:40:13,280 --> 00:40:20,989 src. Si me voy a bin y pongo el s, ya 404 00:40:20,989 --> 00:40:26,289 directamente el crearlo, aunque esté vacío, ya me he creado un bytecode que será respuesta de la 405 00:40:26,289 --> 00:40:34,750 información que tenga el punto java en el que se encuentra en el directorio src. Y ahora vamos a 406 00:40:34,750 --> 00:40:49,679 poner aquí el mismo código que me había puesto antes. public static void main string rs, entre 407 00:40:49,679 --> 00:40:54,900 llaves para el método esto el método esto la clase el método main que es el 408 00:40:54,900 --> 00:41:00,440 punto de inicio del programa y sacamos por pantalla 409 00:41:00,440 --> 00:41:06,559 utilizando el método println que lo tenemos disponible de librerías en java 410 00:41:06,559 --> 00:41:16,590 porque nosotros no lo hemos programado hola desde eclipse ponemos 411 00:41:16,590 --> 00:41:39,079 Entonces salvamos aquí, en la ruta src del proyecto tenemos el ficherito .java, en la ruta bin tenemos el ficherito .class con el base code asociado a este código que hemos puesto. 412 00:41:39,079 --> 00:41:42,199 es decir, Eclipse 413 00:41:42,199 --> 00:41:45,840 automáticamente está llamando al compilador Java 414 00:41:45,840 --> 00:41:49,139 y va creando según el código fuente 415 00:41:49,139 --> 00:41:51,900 que pongamos aquí, según vayamos dando al botón 416 00:41:51,900 --> 00:41:55,239 salvar también, va creando el bytecode 417 00:41:55,239 --> 00:41:57,380 el punto class asociado 418 00:41:57,380 --> 00:42:01,019 para ejecutarlo, que habíamos hecho desde el terminal 419 00:42:01,019 --> 00:42:02,880 pues habíamos llamado al intérprete de Java 420 00:42:02,880 --> 00:42:06,719 aquí que podemos hacer, pulsar el botón run 421 00:42:06,719 --> 00:42:08,699 por ejemplo, o a través de la opción run 422 00:42:08,699 --> 00:42:11,199 run aquí, entonces si pulsamos 423 00:42:11,199 --> 00:42:13,000 fijaros como 424 00:42:13,000 --> 00:42:15,159 nos inicia el proyecto 425 00:42:15,159 --> 00:42:17,019 busca el punto de entrada 426 00:42:17,019 --> 00:42:19,039 que es el main, ejecuta su 427 00:42:19,039 --> 00:42:20,960 código y esta ejecución del código 428 00:42:20,960 --> 00:42:22,800 nos saca por consola 429 00:42:22,800 --> 00:42:24,860 igual que había pasado antes, uno la 430 00:42:24,860 --> 00:42:25,860 desde Eclipse 431 00:42:25,860 --> 00:42:28,980 directamente tiene ya también 432 00:42:28,980 --> 00:42:31,019 una ventanita de consola para ir 433 00:42:31,019 --> 00:42:32,360 nos dando este tipo de resultados 434 00:42:32,360 --> 00:42:36,659 con el IDE hemos podido hacer todo mucho más 435 00:42:36,659 --> 00:42:38,800 integrado y con mucha más 436 00:42:38,800 --> 00:42:48,840 a través de botones que no como lo habíamos hecho a través de a través del terminal y bueno si no me 437 00:42:48,840 --> 00:42:53,619 dejo nada yo creo que esto es todo lo que aunque dándole más tiempo y con más calma y atendiendo 438 00:42:53,619 --> 00:42:59,800 vuestras posibles consultas estos fueron los conceptos que vimos ayer en la tutoría así que 439 00:42:59,800 --> 00:43:06,559 aquí paro y si tenéis alguna cuestión me preguntéis en los foros y si no en la próxima tutoría nos 440 00:43:06,559 --> 00:43:08,460 vemos. Un saludo.