Saltar al contenido principal

Resumen Java (Unidad 5)

Herencia y Polimorfismo

  • Herencia: mecanismo por el cual una clase (subclase) adquiere los atributos y métodos de otra (superclase), permitiendo la reutilización y extensión del código. Se indica con la palabra clave extends.
  • Redefinición (Override): capacidad de una subclase para proporcionar una implementación específica de un método que ya está definido en su superclase.
  • Palabra clave super: referencia a la superclase inmediata. Se usa para invocar constructores (super()) o métodos (super.metodo()) de la clase padre.
  • Clase Object: raíz de la jerarquía de clases en Java. Todas las clases heredan de Object directa o indirectamente. Incluye métodos fundamentales como toString(), equals() y hashCode().
  • Clase Abstracta: clase declarada con abstract que no puede ser instanciada. Puede contener métodos abstractos (sin cuerpo) que las subclases deben implementar obligatoriamente.
  • Polimorfismo: capacidad de una referencia de tipo superclase para apuntar a objetos de cualquiera de sus subclases, ejecutando el comportamiento específico del objeto real en tiempo de ejecución.

Interfaces

  • Interfaz: contrato que define un conjunto de métodos abstractos y constantes que una clase debe implementar. Se define con interface y se aplica con implements.
  • Implementación múltiple: característica que permite a una clase implementar varias interfaces simultáneamente, superando la limitación de la herencia simple de clases.
  • Interfaces de ordenación:
    • Comparable: define el orden natural de los objetos de una clase mediante el método compareTo().
    • Comparator: permite definir criterios de ordenación externos y múltiples para una clase mediante el método compare().
  • Clases Anónimas: clases sin nombre que se definen e instancian en el mismo lugar, útiles para implementaciones rápidas de interfaces o clases abstractas (común en manejadores de eventos o comparadores).

Gestión de excepciones

  • Excepción: evento anormal que ocurre durante la ejecución de un programa y rompe su flujo normal.
  • Jerarquía de excepciones:
    • Throwable: clase base para todo lo que puede ser lanzado.
    • Error: situaciones críticas externas al programa (por ejemplo, falta de memoria) que generalmente no se capturan.
    • Exception: situaciones que el programa debería capturar y tratar. Incluye checked exceptions (obligatorias de gestionar) y RuntimeException (unchecked).
  • Manejo de excepciones:
    • try: bloque que contiene el código que puede lanzar una excepción.
    • catch: captura y trata una excepción específica.
    • finally: bloque que se ejecuta siempre, haya o no excepción, ideal para liberar recursos.
  • Lanzamiento de excepciones:
    • throw: se usa para lanzar explícitamente una instancia de excepción.
    • throws: se usa en la firma de un método para indicar que este puede lanzar determinadas excepciones.

Expresiones Regulares (Regex)

  • Patrón de búsqueda: secuencia de caracteres que define un modelo para buscar o validar fragmentos de texto dentro de un String.
  • Clases principales (java.util.regex):
    • Pattern: representación compilada de una expresión regular.
    • Matcher: motor que interpreta el patrón y realiza operaciones de coincidencia sobre una cadena.
  • Metacaracteres comunes: carácteres especiales como:
    • . (cualquier carácter)
    • * (cero o más)
    • + (uno o más)
    • ? (cero o uno)
    • \d (dígito)
    • [a-z] (rango)
  • Grupos: permiten extraer fragmentos específicos de una coincidencia mediante el uso de paréntesis ().

Patrones de diseño

  • Singleton: patrón creacional que garantiza que una clase tenga una única instancia y proporciona un punto de acceso global a ella.
  • MVC (Model-View-Controller): patrón de arquitectura que separa la aplicación en tres capas: los datos (Modelo), la interfaz (Vista) y la lógica de control (Controlador).
  • DAO (Data Access Object): patrón estructural que abstrae y encapsula el acceso a la fuente de datos, separando la lógica de negocio de la persistencia.
  • Iterator: patrón de comportamiento que permite recorrer los elementos de una colección sin exponer su estructura interna.