Luc GERVAIS
Datos técnicos
Este libro se dirige a los estudiantes y desarrolladores que hayan tenido previamente una primera experiencia con la programación estructurada y que deseen pasar a la Programación Orientada a Objetos (POO) con el lenguaje Java, para desarrollar aplicaciones portables.
Después de una breve historia de la POO y del lenguaje Java, el autor explica por qué este tipo de programación se ha convertido en algo imprescindible para desarrollar en los entornos gráficos orientados a eventos. Se presentan las nociones de objeto, clase y referencia, para pasar a los fundamentos de la POO, que son la encapsulación, la herencia, el polimorfismo y la abstracción. También se exponen las diferentes etapas de un desarrollo orientado a objetos, con los principios de la modelización UML.
Posteriormente, el autor presenta la máquina virtual Java, su interés, riqueza y un entorno de desarrollo con IntelliJ IDEA de la empresa JetBrains. El lector descubrirá cómo Java reproduce los principios de la POO, siguiendo unas sencillas explicaciones, con unos ejemplos concretos y realizando ejercicios de entrenamiento. También descubrirá los tipos básicos del desarrollo Java y su utilización, cómo explotar un IDE para simplificar la escritura de los programas y ponerlos a punto. Los programas de prueba son de tipo consola o gráficos, basados en la utilización de Swing para ilustrar las comunicaciones entre objetos. Cuando es pertinente, se exponen en paralelo códigos con los lenguajes de programación orientados a objetos C++ y C#. Se presenta la programación multithread, que permite la ejecución simultánea de varios flujos de instrucciones, seguido de una introducción a las pruebas unitarias tan importantes para asegurar la fiabilidad de los objetos. Para terminar, el último capítulo se dedica a la reflexión en Java, que promete algunas sorpresas.
Al terminar este libro, el lector dispondrá de unas sólidas bases para aprender los potentes API Java y realizar programas orientados a objetos modulares, fiables y extensibles.
Hay disponibles elementos adicionales, que se pueden descargar.
Introducción a la POO
1. Historia de la POO
2. Histórico del lenguaje Java
El diseño orientado a objetos
1. Enfoque procedural y de descomposición funcional
2. La transición hacia el enfoque orientado a objetos
3. Las características de la POO
3.1 El objeto, la clase y la referencia
3.1.1 El objeto
3.1.2 La clase
3.1.3 La referencia
3.2 La encapsulación
3.3 La herencia
3.4 El polimorfismo
3.5 La abstracción
4. El desarrollo orientado a objetos
4.1 Especificaciones del software
4.2 Presentación del ciclo en V
4.3 Modelización y representación UML
4.3.1 Los diagramas de casos de uso
4.3.2 Los diagramas de clase
4.3.3 Las enumeraciones
4.3.4 Los diagramas de secuencia
4.4 Codificación, integración y puesta en producción
5. Ejercicios
5.1 Jerarquía de clases
5.2 Relaciones entre objetos
5.3 Agregación de objetos
5.4 Diagrama de casos de uso
5.5 Diagrama de secuencias
Introducción a la plataforma Java
1. Introducción
2. Entorno de ejecución
3. Una librería muy completa
4. Las herramientas de desarrollo con buen rendimiento
5. Descarga e instalación de IntelliJ IDEA
6. El inevitable Hello World
7. Una puntualización sobre los acrónimos
Los tipos en Java
1. Introducción
2. Los tipos primitivos
3. Los tipos por referencia
4. Para ayudarnos...
5. La superclase java.lang.Object
5.1 equals
5.2 hashCode
5.3 toString
5.4 finalize
5.5 getClass, .class y el operador instanceof
5.6 clone
5.7 notify, notifyAll y wait
6. La clase java.lang.String
7. Ejercicio
7.1 Enunciado
7.2 Corrección
Creación de clases
1. Introducción
2. Paquetes
3. Declaración de una clase
3.1 Accesibilidad de los miembros
3.2 Atributos
3.3 Descriptores de acceso
3.4 Constructores
3.4.1 Etapas de la construcción de un objeto
3.4.2 Sobrecarga de constructores
3.4.3 Encadenamiento de constructores
3.4.4 El inicializador static
3.4.5 El inicializador dinámico
3.4.6 Los constructores de tipo private
3.4.7 El «builder pattern»
3.5 Destructores
3.6 La palabra clave this
3.7 Métodos
3.7.1 Declaración
3.7.2 Paso de argumentos por valor
3.8 Sobrecarga de métodos
3.9 Mecanismo de las excepciones
3.9.1 Presentación
3.9.2 Principio de funcionamiento de las excepciones
3.9.3 Soporte de varias excepciones
3.10 Ejercicio
3.10.1 Enunciado
3.10.2 Consejos
3.10.3 Corrección
4. Las interfaces
4.1 Introducción
4.2 El contrato
4.3 Declaración de una interfaz
4.4 Implementación
4.5 IntelliJ IDEA y las interfaces
4.6 Representación UML de una interfaz
4.7 Interfaces y polimorfismo
4.8 Ejercicio
4.8.1 Enunciado
4.8.2 Consejos
4.8.3 Corrección
4.9 Las interfaces de la máquina virtual Java
5. Asociaciones, composiciones y agregaciones
5.1 Las tablas
5.2 Las colecciones
5.2.1 ArrayList
5.2.2 Queue
5.2.3 HashMap
5.2.4 Los iteradores
5.3 Ejercicio
5.3.1 Enunciado
5.3.2 Corrección
6. Las clases anidadas
7. Algunas diferencias con C#
Herencia y polimorfismo
1. Entender la herencia
2. Codificación de la superclase (clase de base)y de su subclase (clase heredada)
2.1 Prohibir la herencia
2.2 Definir los miembros heredables
2.3 Sintaxis de la herencia
2.4 Explotación de una clase heredada
3. Comunicación entre clase de base y clase heredada
3.1 Los constructores
3.2 Acceso a los miembros de la clase de base desde el heredado
3.3 Métodos virtuales
3.4 Métodos de tipo «final»
4. Ejercicio
4.1 Enunciado
4.2 Corrección
5. Las clases abstractas
6. El polimorfismo
6.1 Entender el polimorfismo
6.2 Explotación del polimorfismo
6.3 Los operadores instanceof y ()
Comunicación entre objetos
1. El evento: estar a la escucha
2. El pattern Observador
2.1 Aspectos generales
2.2 Implementación en lenguaje Java
2.3 Los listeners
2.4 Utilización de un listener en una aplicación gráfica
3. Ejercicios
3.1 Ejercicio 1
3.1.1 Enunciado
3.1.2 Corrección
3.2 Ejercicio 2
3.2.1 Enunciado
3.2.2 Corrección
4. Llamadas síncronas y asíncronas
El multithreading
1. Introducción
2. Entender el multithreading
3. Multithreading y Java
4. Implementación de los threads en Java
4.1 Extender la clase Thread
4.2 Implementar la interfaz Runnable
4.3 Dormirse y esperar
4.4 Abandono desde el thread primario
4.5 Threads y clases anónimas
4.5.1 Con la interfaz Runnable
4.5.2 Con la clase Thread
4.5.3 Acceso simplificado a las variables y datos miembro
5. Sincronización entre threads
5.1 Necesidad de la sincronización
5.2 Los métodos «syncronized»
5.3 Las operaciones «syncronized»
5.4 La clase Semaphore
6. Comunicación interthreads
6.1 El método join
6.2 Los objetos de sincronización
7. Ejercicio
7.1 Enunciado
7.2 Corrección
Las pruebas
1. Introducción
2. Entorno de ejecución de las pruebas unitarias
3. El proyecto con pruebas unitarias
4. La clase de pruebas
5. Contenido de un método de prueba
6. Operaciones de preparación y limpieza
7. Las pruebas con argumentos externos
8. Las suites de pruebas
9. Ejercicio
9.1 Enunciado
9.2 Corrección
La reflexión
1. Introducción
2. Pero ¿ para qué hacerlo ?
3. Introspección de una clase Java
4. Carga dinámica y utilización de una clase descubierta
5. Ejercicio
6. Privado, pero no tanto...
7. Decompilación y ofuscación
índice
2024 © Vuestros Libros Siglo XXI | Desarrollo Web Factor Ideas