Estos apuntes del lenguaje Java son el guión estructurado de un curso de Introducción al Lenguaje Java. No son una referencia exahustiva del lenguaje sino que pretenden proporcionar una aproximación progresiva, partiendo de lo más elemental e introduciendo los conceptos ordenadamente, apoyándose en lo anterior.
Están estructurados en forma de lecciones breves, que abarcan todos los aspectos del lenguaje en un nivel básico-medio. No se presuponen conocimientos de otros lenguajes de programación, aunque obviamente estar familiarizados con conceptos relativos a la programación como variables, algoritmos, objetos, etc. facilita mucho la tarea.
Sin embargo, se ha evitado intencionadamente la referencia o la comparación con otros lenguajes, especialmente con C/C++ que tan presente está en muchos textos de Java.
La primera parte de estos apuntes cubre todos los aspectos del lenguaje (Clases, Interfaces, herencia, control de flujo, tipos de datos, etc.). La segunda parte, actualmente en elaboración, trata materias de la API de Java, agrupándolos por temas (Entrada/Salida, Threads, applets, etc.).
Índice de contenidos
PARTE I - El Lenguaje Java
1. Introducción
1.1. Objetivos de diseño de Java
1.2. Características de Java
1.3. Qué incluye el J2SE (Java 2 Standard Edition)
1.4. Qué es el JRE (Java Runtime Environment)
1.5. Qué se necesita para empezar
2. Tipos, Valores y Variables
2.1. Tipos
2.2. Tipos primitivos
2.3. Variables
2.4. Literales
2.5. Operaciones sobre tipos primitivos
3. Métodos
3.1. Declaración de métodos
3.2. El término void
3.3. Uso de métodos
4. Clases - Introducción
4.1. Clases
4.2. Objetos, miembros y referencias
4.3. Conceptos básicos. Resumen
5. Clases - Constructores
5.1. Noción de constructor
5.2. Constructor no-args.
5.3. Sobrecarga de constructores
6. Clases - Miembros estáticos
6.1. Datos estáticos
6.2.Métodos estáticos
6.3. El método main
6.4. Inicializadores estáticos
7. Clases - Otros aspectos
7.1. Inicialización de variables
7.2. Ambito de las variables
7.3. Recogida de basura
7.4. Sobrecarga de métodos
7.5. La referencia this
7.6. La referencia null
7.7. Ocultamiento de variables
8. Control de la Ejecución
8.1. Resumen de operadores
8.2. Ejecución condicional
8.3. Iteraciones con while
8.4. Iteraciones con for
8.5. Evaluación múltiple
8.6. Devolución de control
8.7. Expresiones
9. Arrays
9.1. Declaración y acceso
9.2. Arrays multidimensionales
10. Strings
10.1. La clase String
10.2. Creación de Strings
10.3. Concatenación de Strings
10.4. Otros métodos de la clase String
10.5. La clase StringBuffer
11. Packages
11.1. Cláusula package
11.2. Cláusula import
11.3. Nombres de los packages
11.4. Ubicación de los packages en el sistema de archivos
12. Compilación y ejecución de programas
12.1. Creación y compilación de un programa Java
12.2. Ejecución de un programa Java
12.3. Archivos fuente (.java) y ejecutables (.class)
13. Modificadores de acceso
13.1. Modificadores
13.2. Modificadores de acceso.
13.3. Modificadores de acceso para clases.
13.4. ¿Son importantes los modificadores de acceso?
14. Herencia - I
Composición
Herencia
Redefinición de métodos. El uso de super.
Inicialización de clases derivadas.
15. Herencia - II
El modificador de acceso protected
Up-casting y down-casting
Operador cast
La clase Object
La cláusula final
Herencia simple
16. Gestión de excepciones
Excepciones.Categorías
Generación de excepciones
Captura de excepciones
Cláusula finally
17. Clases envoltorio (Wrapper)
Definición y uso de clases envoltorio
Resumen de métodos de Integer
18. Clases abstractas
Concepto
Declaración e implementación de métodos abstractos
Referencias y objetos abstractos
19. Interfaces
Concepto de Interface
Declaración y uso
Referencias a Interfaces
Extensión de Interfaces
Agrupación de Constantes
Un ejemplo casi real
20. Clases embebidas (Inner classes)
Concepto
Ejemplo
21. Comentarios, documentación y convenciones de nombres
Comentarios
Comentarios para documentación
Una clase comentada
Convenciones de nombres
Apéndice I. Sintaxis del Lenguaje Java
Parte II - El API de Java
22. Introducción API
22.1. Presentación API
22.2. Resumen del contenido
23. Threads I
23.1. Qué es un thread.
23.2. La clase Thread
23.3. La interface Runnable.
23.4. El ciclo de vida de un Thread
24. Threads II
24.1 Threads y prioridades
24.2 Sincronización de threads