Introducción a la programación
Datos, algoritmos y programas
Definición de algoritmo
Datos
Características de un programa
Software de programación
Paradigmas de programación
Programación imperativa
Ventajas e inconvenientes de los lenguajes de programación imperativa
Programación funcional
Programación lógica
Programación orientada a objetos
Lenguajes de programación
Historia de los lenguajes de programación
Características de los lenguajes de programación
Errores y calidad de los programas
Diseño de un programa
Diagramas de flujo
Pseudocódigo
Estructura de un algoritmo en pseudocódigo
Ejemplo de programa
Herramientas y entornos para el desarrollo de programas
Entorno de desarrollo Eclipse
Resumen
Identificación de los elementos de un programa informático
Estructura y bloques fundamentales de Java
Caracteres en Java
Tipos de datos en Java
Primitivos
Referenciados
Enumerados
Resumen de tipos
Literales en Java
Entero
Reales
De un solo carácter
De cadenas de caracteres
Identificadores en Java
Palabras reservadas en Java
Comentarios en Java
Legibilidad y líneas en blanco
Variables. Declaración, inicialización y utilización. Almacenamiento en memoria
Constantes en Java
Conversiones de tipo en Java. Implícitas y explicitas (crecientes y casting)
Conversión implícita o creciente
Conversión explícita o casting
Promoción de tipos automáticamente al evaluar una expresión
Operadores y expresiones. Precedencia de operadores
Aritméticos
De relación
Lógicos
Prioridad de los operadores lógicos y matemáticos
Unitarios
A nivel de bits
De asignación
Condicional
Prioridad y orden de evaluación
Resumen
Introducción a la orientación a objetos
Un poco de historia
Clases
Objetos
Principios básicos de la orientación a objetos
Abstracción
Encapsulación
Modularidad
Polimorfismo
Herencia
Resumen
Desarrollo de clases
Concepto de clase
Estructura y miembros de una clase en Java
Creación de atributos Declaración e inicialización en Java
Métodos en Java
Métodos de instancia y de clase
Cabecera y cuerpo. Signatura
Métodos recursivos
Sobrecarga de métodos en Java
Creación de constructores en Java
Control de acceso
Librerías y paquetes de clases. Utilización y creación
Especificadores de acceso Java
Métodos accesores y mutadores
Clases internas
Utilización de clases
Documentación sobre librerías y paquetes de clases
Resumen
Utilización de objetos
¿Qué es un objeto en Java?
Características de los objetos
Constructores
Instanciación de objetos. Declaración y creación
Declarar una variable para que referencie a un objeto
Instanciar una clase
Inicializar un objeto
Comparación de objetos
Utilización de métodos. Parámetros y valores de retorno
Estructura de un método Java
Implementación de métodos en Java
Invocación de métodos, el método main
Paso de parámetros. Paso por valor y paso por referencia
Valor de retorno. La instrucción return
Utilización de métodos estáticos
Clases predefinidas
Envoltorios (autoboxing) y unboxing
Destrucción de objetos y liberación de memoria
Finalizadores en Java
Resumen
Uso de estructuras de control
Estructuras de control
Estructuras de selección en Java
If
If – Else
If – Else if
Errores comunes que se suelen cometer en las instrucciones if
Operador condicional
Switch
Estructuras de repetición
While
Do – while
For
For – each
Estructuras de salto
Break
Continue
Resumen
Control y manejo de excepciones
Excepciones de Java
Jerarquías de excepciones en Java
Excepciones Runtime
Checked Exceptions
¿A qué se deben las excepciones?
Manejo de excepciones en Java
Captura de excepcionesGestión de excepciones
Delegación de excepciones
Definición de excepciones de usuario
Lanzamiento de excepciones de usuario y redefinición
Aserciones
Resumen
Utilización avanzada de clases
Relaciones entre clases. Composición de clases
Herencia. Concepto y tipos (simple y múltiple)
Superclases y subclases
Constructores y herencia
Conversiones de tipos entre objetos (casting)
Conversión ascendente
Conversión descendente
Sobreescritura de métodos
Polimorfismo
Clases y métodos abstractos y finales en Java
Herencia forzada
Interfaces. Clases abstractas vs interfaces en Java
Jerarquía de interfaces
Clases y tipos genéricos o parametrizados
Resumen
Aplicación de las estructuras de almacenamiento
Arrays unidimensionales y multidimensionales en Java
Declaración
Creación de arrays unidimensionales y multidimensionales
Inicialización
Acceso a elementos
Recorridos, búsquedas y ordenaciones
Método burbuja
Método por intercambio
Método por selección
Método de ordenación rápida (quicksort)
Cadenas de caracteres en Java
Clase String
Clase StringBuffer
Clase StringTokenizer
Operaciones, acceso a elementos, conversiones, concatenación
Método length()
Método charAt
Método subString
Resumen
Colecciones de datos
Uso de clases y métodos genéricos
Operaciones con colecciones. Acceso a elementos y recorridos
Tipos de colecciones en Java
List
Set
Map
Resumen
Lectura y escritura de información
Flujos o streams
Tipos de flujos. Flujos de bytes y de caracteres
Clases asociadas a las operaciones de gestión de ficheros
Creación y eliminación de ficheros y directorios
Creación y eliminación de directorios
Entrada/salida estándar
Entrada desde teclado
Salida a pantalla
Almacenamiento de información en ficheros
Formas de acceso a un fichero
Operaciones sobre ficheros
Apertura y cierre de ficheros. Escritura y lectura de información en ficheros de texto
Escritura y lectura de información en ficheros binarios
Almacenamiento de objetos en ficheros. Persistencia. Serialización
Interfaces gráficas de usuario simples
Concepto de evento. Creación de controladores de eventos
Resumen
Gestión de bases de datos relacionales
Interfaces de programación de acceso a bases de datos
Acceso a datos mediante JDBC
Establecimiento de conexiones
Ejecución de sentencias de manipulación de datos
Ejecución de consultas sobre la base de datos
Ejecución de sentencias de descripción de datos
Resumen
Mantenimiento de la persistencia de objetos
Bases de datos orientadas a objetos
Características de las bases de datos orientadas a objetos
El estándar ODMG. Tipos de datos objeto y colección
Modelo de objetos
Los objetos
Literales
El lenguaje de definición de objetos (ODL)
El lenguaje de consulta de objetos (OQL)
Instalación del gestor de bases de datos NeoDatis object database
Creación de bases de datos
Mecanismos de consulta
Recuperación, modificación y borrado de información
Resumen
Glosario, bibliografía y enlaces de interés
Glosario
Bibliografía y enlaces de interés