©2024 Escuela Tecnologías de la Información S.L. Todos los derechos reservados.
Curso de programación y diseño con Java
Curso de Java y diseño orientado a objetos para estudiantes con nociones de programación
Material disponible
Java es uno de los lenguajes más utilizados en la industria del software. Un lenguaje fuertemente tipado y orientado a objetos, ideal para la programación de todo tipo de aplicaciones, desde consola a interfaces gráficas o proyectos de aplicaciones de escritorio. También es muy usado para aplicaciones distribuidas en diversos entornos, entre los que se destacan los proyectos para Internet basados en servicios web.
Aprender Java es sencillo porque ofrece una ruta definida para la realización de los programas, ya que todo el software se tiene que realizar basado en clases y objetos. Además, su sistema de tipos ofrece una red de seguridad que nos ayuda a detectar situaciones en las que se puede estar cayendo en errores y obligará al programador a aplicar correctamente las prácticas deseables de la programación.
También es un lenguaje ideal para aprender y aplicar conceptos de diseño del software y diseño orientado a objetos, para conseguir realizar aplicaciones flexibles, escalables y robustas. En este curso programación con Java podrás experimentar estas ventajas, ya que está orientado de modo que puedas aprender el lenguaje y a la vez aplicar todos los conceptos de diseño del software y diseño orientado a objetos necesarios para la construcción de aplicaciones del mundo real.
Aprender Java es sencillo porque ofrece una ruta definida para la realización de los programas, ya que todo el software se tiene que realizar basado en clases y objetos. Además, su sistema de tipos ofrece una red de seguridad que nos ayuda a detectar situaciones en las que se puede estar cayendo en errores y obligará al programador a aplicar correctamente las prácticas deseables de la programación.
También es un lenguaje ideal para aprender y aplicar conceptos de diseño del software y diseño orientado a objetos, para conseguir realizar aplicaciones flexibles, escalables y robustas. En este curso programación con Java podrás experimentar estas ventajas, ya que está orientado de modo que puedas aprender el lenguaje y a la vez aplicar todos los conceptos de diseño del software y diseño orientado a objetos necesarios para la construcción de aplicaciones del mundo real.
Qué aprenderé en el Curso de programación y diseño con Java
Objetivos del curso
El objetivo del curso de programación y diseño con Java es aprender a desarrollar aplicaciones con el lenguaje Java y, a la vez, conocer y aplicar los conceptos de diseño del software y diseño orientado a objetos necesarios para construir aplicaciones con las características deseables en todo software, que nos permitan mejorar la flexibilidad y robustez de las aplicaciones, su escalabilidad y, a la postre, la facilidad de mantenimiento.
Por qué debes aprender programación y diseño con Java
Qué tengo que saber
Para la realización de este curso hace falta tener algunos conocimientos de programación, aunque es indiferente el lenguaje de programación que se conozca de antemano. Se supone que el estudiante tiene algunas nociones, aunque sean muy básicas, sobre diseño de software: acoplamiento, cohesión, tamaño… Todos esos conceptos se aplicarán a lo largo del curso, junto con nuevos conceptos de diseño y diseño orientado a objetos que aplican a lenguajes fuertemente tipados como Java.
Clases y contenidos
- Programación, diseño del software y el diseño orientado a objetos.
- Por qué es importante aprender a programar en un lenguaje prestando especial atención a los conceptos de diseño, que permitan crear software de calidad.
En este vídeo vamos a explicar cómo instalar el JDK en Mac y cómo configurar Visual Studio Code con las extensiones necesarias para para desarrollar con Java. Además veremos cómo restaurar los ejemplos del curso, clonando repositorios y ejecutando los programas Java.
Ahora vamos a ver cómo instalar el JDK para desarrollar con Java y las extensiones necesarias en Visual Studio Code, pero usando el sistema operativo Windows. El proceso es idéntico al del vídeo anterior, solo que hemos realizado la descarga del OpenJDK desde el enlace que nos proporciona directamente VSCode al instalar el pack de extensiones de Java. Además explicamos cómo clonar los repositorios de ejemplos que veremos en los próximos días y cómo ejecutar los archivos Java desde Visual Studio Code.
En esta clase vamos a comenzar con las bases de la programación con Java, abordando asuntos importantes pero básicos como los tipos de datos en Java, los literales, operadores de cada tipo y unas primeras sentencias de declaraciones y asignaciones.
Los conceptos esenciales de la programación estructurada aplicados en el lenguaje Java: Estructuras de control, funciones (en Java métodos)...
Continuación y práctica de los conceptos de programación estructurada aplicados a Java.
En esta clase comenzamos a ver cómo se desarrollan las clases en Java y cómo se instancian objetos de esas clases. Comenzaremos atendiendo a lo que sería la vista pública de las clases en Java. Tocaremos temas como clases, objetos, referencias, métodos, propiedades, constructores, destructores y más.
Realizamos la solución de la práctica propuesta en la clase anterior, en la que se pidió realizar las interfaces (vista pública) de las clases Coordinate y Date.
Veremos el concepto de vista privada de las clases y comenzaremos a ver implantaciones de clases de ejemplo.
En esta clase corregimos las prácticas enunciadas en el anterior día. Se corrige concretamente la implantación de la clase Coordinate y la propuesta de una interfaz (diseño de la vista pública) de una clase Lista de elementos de un tipo definido por el usuario.
Explicamos lo que es la vista privada de objetos. Veremos luego qué son los miembros de clase, o miembros estáticos. Veremos varios ejemplos de clases de utilidad de Java que tienen una serie de miembros estáticos, como Math. Por último veremos la clase String.
En esta parte de la clase comenzamos revisando algunas preguntas realizadas en la plataforma y luego pasamos a corregir prácticas propuestas en los días anteriores. En este caso veremos implantaciones de la clase Coordinate y la clase Date.
Continuamos con el lenguaje Java, viendo en detalle la clase String y las clases de recubrimiento de los tipos primitivos. Son clases que habíamos dejado en el tintero porque en ellas encontraremos muchos miembros estáticos.
Vemos con precisión qué son los enumerados en Java, qué posibilidades nos ofrecen y los motivos por los que son tan útiles.
En este bloque de la clase hemos realizado la corrección de la clase Coordinate después de aplicar nuevas propuestas de las clases pasadas.
Hacemos una pausa en el abordaje de nuevos conocimientos de Java para comparar éste lenguaje con el lenguaje Javascript. Veremos algunas de sus diferencias como el tipado, los paradigmas de la programación y otras cosas destacadas como la permisividad de Javascript en el tipo de cosas que se pueden llegar a hacer, frente a la rigurosidad de Java.
En este bloque vamos a introducir el juego de las tres en raya. Comenzamos por ver el enunciado, que consiste en: Modelo de dominio de 3 en raya Requisitos del juego de las tres en raya con casos de uso y prototipo de la interfaz Luego vemos la solución inicial propuesta, no es que sea la solución que queremos, pero sí un primer estado por el que podríamos comenzar. Este primer diseño está basado mayormente en el modelo del dominio, escogiendo realmente las clases que vamos a usar al desarrollar el software (no toda entidad del modelo de dominio tiene su clase en el software y también hemos hecho clases adicionales, no presentes en el modelo del dominio porque nos ha parecido adecuado). Durante el vídeo se justifica el diseño haciendo un repaso al tema de diseño y diseño modular.
En esta clase se realiza la corrección de distintas prácticas realizadas por los estudiantes con cambios de diseño propuestos sobre el TicTacToe.
Aquí Luis nos ofrece algunos cambios de diseño que ha realizado él sobre el juego del TicTacToe, con un repaso fundamental a diversos conceptos de diseño, recomendaciones y teoría en general sobre diseño de software.
En este bloque de la clase vamos a ver un código realizado por Luis para la construcción de una pila. En este caso una pila acotada, por lo tanto tiene un número de elementos máximo. Este código (y algunos consejos aportados) lo puedes tomar como referencia para guiarte en la práctica propuesta en esta clase, que es la creación de una pila acotada de intervalos.
Vamos a corregir una práctica pendiente, que fue propuesta en clases anteriores, en la que se proponía realizar un menú para la clase ServicesContract.
En esta clase veremos las correcciones de prácticas planteadas anteriormente. En concreto se verán ejemplos de un menú de contrato de servicio que ha sido mejorado y la pila no acotada.
En esta clase vamos a abordar el tema de las aserciones que viene del tema de diseño por contrato. Qué son las aserciones, cuándo se deben utilizar y por qué. En Java se realizan con la sentencia assert.
En esta parte de la clase vamos a realizar la corrección de dos prácticas: TicTacToe con vista separada. Pila no acotada con asserts.
Comenzamos con la teoría de la Programación Orientada a Objetos, en la que explicaremos qué es la herencia, cuándo podemos usarla y cuándo no.
En esta clase avanzamos con el tema de herencia, viendo, entre otras cosas, qué son las clases abstractas y por extensión acabamos introduciendo las interfaces como clases abstractas puras.
Vemos un último detalle sobre herencia en Java que nos permite el modificador final, sobre métodos y clases.
Llegamos al tema de polimorfismo, qué es polimorfismo, por qué lo queremos y por qué es tan importante en la programación orientada a objetos. Ejercicio con polimorfismo.
Vamos a corregir la práctica de herencia y polimorfismo que se planteó en la clase anterior.
- Qué son los módulos y dónde encontramos módulos en el mundo de la programación en Java.
- Qué beneficios nos trae la programación modular.
Corregimos mejoras en la práctica de contrato de servicio, según las sugerencias del último día.
En este vídeo avanzamos y finalizamos el tema de la Programación Modular en Java, viendo las posibilidades que nos ofrece el lenguaje para el trabajo con packages.
En este vídeo se va a ver la corrección del juego Conecta 4 que se solicitó como práctica. Hemos visto una traducción a Java del juego desarrollado en Javascript en módulos anteriores del máster, por eso el repaso del código será bastante ágil.
Se explica la jerarquía de clases Coordinate que usa el juego TicTacToe, a petición de los estudiantes.
Veremos cómo funcionan las excepciones en Java y los errores. Veremos ejemplos de código para tratar las excepciones en Java, para levantar excepciones y para capturarlas.
Se ha avanzado en la práctica de Conecta 4 y se presentan las correcciones en clase.
Vemos toda la jerarquía de clases para flujos en Java, cómo trabajar con flujos, con ejemplos diversos.
Corrección de avances en la práctica de Conecta 4 introduciendo lectura de ficheros en Java.
Justificación de la programación parametrizada, por qué la necesitamos en Java. Cómo se crean clases con programación parametrizada en Java.
Nuevas correcciones en el juego Conecta 4 realizado por los estudiantes.
Veremos qué son los parámetros de comodines en los generics de Java y luego veremos los métodos genéricos.
Un conjunto de clases para representar y manejar estructuras de datos.
Realizamos correcciones de una práctica sugerida en la clase anterior: la adaptación de una clase genérica para aplicar a juegos.
Repaso de la programación parametrizada y las colecciones. Finalización de la teoría de colecciones parametrizadas y recapitulación de la programación en Java y otras tecnologías y prácticas para el desarrollo.
Valoraciones
Francisco Yago
Top para los amantes del software
DOCAL ARTAJO / JAIME
Excelente curso, como todos los de Luis.
¿Conoces nuestra tarifa plana?
Toda la formación de EscuelaIT, con más de 200 cursos completos para aprender las más variadas tecnologías de programación, diseño y marketing online. Todo! con tu suscripción.