Conceptos Clave de la Programación Orientada a Objetos: Clases, Interfaces y Hilos

Clasificado en Informática

Escrito el en español con un tamaño de 3,73 KB

Fundamentos de la Programación Orientada a Objetos (POO)

La Programación Orientada a Objetos (POO) es un paradigma de programación que organiza el diseño de software en torno a datos u objetos, en lugar de funciones y lógica. Se basa en una colección estructurada de clases y objetos.

Conceptos Básicos

¿Qué es una clase?

Básicamente, una clase es una plantilla que sirve para crear un objeto.

¿Qué es un objeto?

Un objeto es una instancia de una clase.

Atributos

Determinan la estructura de almacenamiento para cada objeto de la clase. Son las características o propiedades que definen a un objeto.

Métodos

Son las operaciones o acciones aplicables a los objetos. Representan el comportamiento del objeto y son el único modo recomendado para acceder y modificar sus atributos, un principio conocido como encapsulamiento.

Abstracción: Clases Abstractas e Interfaces

Clase Abstracta

Una clase que declara la existencia de métodos, pero no su implementación, se considera una clase abstracta. Sus características principales son:

  • Puede contener métodos no abstractos, pero al menos uno de sus métodos debe ser abstracto.
  • Para declarar una clase o método como abstracto, se utiliza la palabra reservada abstract.
  • No se puede instanciar (es decir, no se pueden crear objetos directamente de ella), pero sí se puede heredar.
  • Las clases hijas que heredan de una clase abstracta serán las encargadas de implementar la funcionalidad de los métodos abstractos.
Ventajas de su uso

Una ventaja clave es que evitan la creación de objetos de una clase que no está completamente implementada, forzando a las subclases a definir un comportamiento específico y asegurando una estructura común.

Interfaces

Una interfaz es una variante de una clase abstracta que define un "contrato" que cualquier clase que la implemente debe seguir. Tradicionalmente, todos sus métodos debían ser abstractos.

Una clase implementa una o más interfaces (separadas por comas) utilizando la palabra reservada implements. Mediante el uso de interfaces, se puede simular la herencia múltiple, una característica que Java no soporta directamente para clases.

Concurrencia en Java: Hilos (Threads)

Un hilo (o thread) es la unidad de ejecución más pequeña que puede ser gestionada por un sistema operativo, permitiendo que una aplicación realice múltiples tareas simultáneamente.

En Java, un hilo es una instancia de una clase que define el método run(). Esto se puede lograr de dos maneras: extendiendo la clase Thread o implementando la interfaz Runnable. Cuando se invoca el método start() de un objeto Thread, el entorno de ejecución de Java ejecuta el contenido del método run() en un nuevo hilo de ejecución concurrente.

Ejemplo de Código en Java

public class MainThread {
    public static void main(String[] args) {
        Cliente cliente1 = new Cliente("Cliente 1", new int[]{2, 2, 1, 5, 2, 3});
        Cliente cliente2 = new Cliente("Cliente 2", new int[]{1, 3, 5, 1, 1});

        // Tiempo inicial de referencia
        long initialTime = System.currentTimeMillis();

        CajeraThread cajera1 = new CajeraThread("Cajera 1", cliente1, initialTime);
        CajeraThread cajera2 = new CajeraThread("Cajera 2", cliente2, initialTime);

        cajera1.start();
        cajera2.start();
    }
}

Entradas relacionadas: