Contenido Introducción
- Analizar la tecnología Java.
- Analizar una aplicación Java sencilla.
- Ejecutar una aplicación Java.
Programación orientada a objetos
- Definir los conceptos de modelado: abstracción, encapsulación y paquetes.
- Explicar la reutilización del código de las aplicaciones Java.
- Definir los conceptos clase, miembro, atributo, método, constructor y paquete.
- Utilizar los modificadores de acceso público (public) y privado (private) conforme sea necesario para la encapsulación.
- Llamar a un método de un determinado objeto.
- Utilizar la documentación en línea de las API de Java.
Identificadores, palabras clave y tipos
- Utilizar comentarios en el código fuente.
- Diferenciar entre identificadores válidos y no válidos.
- Reconocer las palabras clave utilizadas en Java.
- Enumerar los ocho tipos primitivos existentes.
- Definir valores literales para tipos numéricos y textuales.
- Definir los términos variable primitiva y variable de referencia.
- Declarar variables de tipo clase.
- Crear un objeto utilizando new.
- Describir la inicialización predeterminada.
- Describir la importancia de una variable de referencia.
- Evaluar las consecuencias de asignar variables de tipos de clase.
Expresiones y control de flujo
- Diferenciar las variables de instancia de las variables locales.
- Describir la forma de inicializar las variables de instancia.
- Reconocer, describir y utilizar los operadores del lenguaje Java.
- Diferenciar entre asignaciones válidas y no válidas de los tipos primitivos.
- Identificar las expresiones booleanas y sus requisitos en las construcciones de control.
- Reconocer la compatibilidad de asignaciones y las conversiones de tipos necesarias en los tipos fundamentales.
- Utilizar las construcciones if, switch, for, while y do, además de las formas etiquetadas de las instrucciones break y continue, como estructuras de control de flujo en un programa.
Matrices
- Declarar y crear matrices de tipos primitivos, tipos de clase o de matriz.
- Explicar por qué se inicializan los elementos de una matriz.
- Explicar cómo se inicializan los elementos de una matriz.
- Determinar el número de elementos de una matriz.
- Crear una matriz multidimensional.
- Escribir código para copiar valores matriciales entre matrices.
Diseño de clases
- Definir la herencia, el polimorfismo, la sobrecarga, la anulación y la llamada de un método virtual.
- Utilizar los modificadores de acceso protegido (protected) y el paquete sin modificador de acceso.
- Describir los conceptos de sobrecarga de constructores y métodos.
- Describir la operación completa de construcción e inicialización de objetos.
Funciones de clases avanzadas
- Crear variables, métodos e inicializadores estáticos.
- Crear clases, métodos y variables finales.
- Crear y usar tipos enumerados.
- Usar la instrucción de importación estática.
- Crear clases y métodos abstractos.
- Crear y utilizar una interfaz.
Excepciones y aserciones
- Definir las excepciones.
- Utilizar instrucciones try, catch y finally.
- Describir las categorías de excepciones.
- Identificar las excepciones comunes.
- Desarrollar programas que gestionen excepciones.
- Utilizar aserciones.
- Distinguir entre el uso adecuado e inadecuado de las aserciones.
- Habilitar aserciones durante el tiempo de ejecución.
API Collections y Generics
- Describir las implementaciones genéricas de las interfaces fundamentales de la infraestructura Collections.
- Analizar la interfaz Map.
- Examinar las clases colección tradicionales.
- Crear órdenes naturales y personalizadas mediante la implementación de las interfaces Comparable y Comparator.
- Utilizar colecciones genéricas.
- Emplear parámetros de tipo en clases genéricas.
- Refactorizar código no genérico existente.
- Escribir un programa para iterar una colección.
- Examinar el bucle loop mejorado.
Principios básicos de E/S
- Escribir un programa que utilice argumentos de la línea de comandos y propiedades del sistema.
- Analizar la clase Properties.
- Construir y utilizar correctamente flujos de nodos y de procesamiento.
- Serializar y deserializar objetos.
- Distinguir entre lectores (readers) y escritores (writers) en los flujos y optar correctamente por uno u otro.
E/S de consola y E/S de archivos
- Leer datos de la consola.
- Escribir datos en la consola.
- Describir los archivos y la E/S de archivos.
Creación de interfaces Java con la API de Swing
- Describir la tecnología Swing de JFC.
- Definir Swing.
- Identificar los paquetes de Swing.
- Describir los bloques de construcción de la interfaz gráfica, como los contenedores, los componentes y los administradores de disposición.
- Examinar las propiedades de los contenedores de nivel superior, genéricos y especiales.
- Examinar los componentes.
- Examinar los administradores de diseño.
- Describir el modelo de subproceso único de Swing.
- Crear una interfaz gráfica usando componentes Swing.
Manejo de eventos generados por la interfaz gráfica
- Definir el concepto de eventos y su manejo.
- Examinar el modelo de eventos de Java SE.
- Describir el comportamiento de la interfaz gráfica.
- Determinar la acción del usuario que ha originado un evento.
- Desarrollar receptores de eventos.
- Describir la concurrencia en interfaces graficas basadas en Swing y las características de la clase SwingWorker.
Aplicaciones basadas en la interfaz gráfica
- Explicar cómo construir una barra de menús, un menú y opciones de menú en una interfaz gráfica Java.
- Entender cómo cambiar el color y el tipo de letra de un componente.
Threads
- Definir un subproceso (thread).
- Crear diferentes subprocesos en un programa Java controlando el código y los datos usados por cada subproceso.
- Controlar la ejecución de un subproceso y escribir código independiente de la plataforma con subprocesos.
- Describir las dificultades que pueden surgir cuando varios subprocesos comparten los mismos datos.
- Utilizar wait y notify para la comunicación entre subprocesos.
- Utilizar synchronized para evitar que los datos resulten dañados.
Redes
- Desarrollar código para configurar la conexión en red.
- Entender el protocolo TCP/IP.
- Utilizar las clases ServerSocket y Socket para implementar clientes y servidores TCP/IP.