Caso práctico
En las últimas semanas, María y Juan han avanzado muchísimo a lo largo de su recorrido por las estructuras de almacenamiento más básicas. María sabe que Java dispone de librerías para solventar los problemas de utilizar estructuras de datos estáticas pero es consciente de que debe conocer en profundidad algunos conceptos sobre la Programación Orientada a Objetos. Aún recuerda que cuando aprendió a escribir sus propias clases, con sus atributos y sus métodos, se quedaron muchos conceptos sin terminar de aclarar y que serían estudiados más adelante: utilización de la herencia, creación de interfaces, clases abstractas, jerarquías de clases, etc. Estos conceptos son fundamentales para abordar dos temas muy importantes para cualquier desarrollador Java: las colecciones de objetos y las interfaces gráficas de usuario.
Ambos saben que faltan unos cuantos conceptos por asimilar y que sin duda les van a proporcionar más herramientas a la hora de desarrollar sus proyectos. Parece que ha llegado el momento de formalizar algunos de estos conocimientos para poder emplearlos en sus programas.
Una propiedad o información específica contenida en el interior de un objeto.
Elementos de una clase u objeto compuestos por una serie de sentencias que sirven para describir las acciones a realizar con esa clase u objeto.
Mecanismo que permite derivar una clase de otra, de manera que extienda su funcionalidad.
Una interfaz(o interface) en Java es una especie de clase especial donde todos sus métodos son declarados como abstract (métodos abstractos). Es misión del programador implementar sus correspondientes métodos.
Una clase abstracta en Java es una clase que contiene al menos un método abstracto. Para declarar una clase abstracta en Javase utiliza el modificador abstract.
Conjunto de clases, agrupadas en modo de librería, destinadas a la utilización de un determinado servicio software. Las bases de datos proporcionan un conjunto de funciones y clases para acceder a los datos almacenados. El término API significa: interfaz de programación de aplicaciones.