Saltar al contenido principal
Publicado el

Clases y Objetos en Java

Compartir:

Introducción

Java, al ser un lenguaje orientado a objetos, tiene su base construida en torno al concepto de clases y objetos. En este artículo, exploraremos estos conceptos fundamentales y cómo se interrelacionan en la construcción de aplicaciones robustas.

¿Qué son las Clases?

Las clases en Java pueden considerarse como plantillas o blueprints para crear objetos. Encapsulan los datos del objeto y los métodos para operar sobre esos datos.

  • Atributos: Representan las propiedades de un objeto. Por ejemplo, un coche tiene color, marca y modelo como atributos.
  • Métodos: Representan el comportamiento. Continuando con el ejemplo del coche, los métodos podrían ser arrancar(), frenar() y acelerar().

¿Qué son los Objetos?

Un objeto es una instancia de una clase. Cuando creamos un objeto, estamos esencialmente creando una instancia de esa clase, dotada de su propio estado y comportamiento.

Conceptos Fundamentales de la POO

  1. Encapsulamiento: Se refiere al agrupamiento de datos (atributos) y métodos que operan sobre esos datos en una única unidad (es decir, una clase).
  2. Herencia: Permite que una clase herede atributos y métodos de otra clase. Esto promueve la reutilización de código.
  3. Polimorfismo: Capacidad de un objeto de asumir muchas formas. El polimorfismo en Java se logra mediante la sobrecarga (overloading) y la sobreescritura (overriding) de métodos.

Ejemplo Práctico

Consideremos un ejemplo donde tenemos una clase que representa a un "Enemigo" en un juego.

package com.caffeinealgorithm.programaremjava;

public class ClasesYObjetos {
  private int vidas = 5;

  public void atacar() {
    System.out.println("Fui atacado y perdí una vida.");
    vidas -= 1;
  }

  public void verificarVida() {
    if (vidas <= 0)
      System.out.println("Estoy muerto porque no me quedan más vidas.");
    else
      System.out.printf("Sigo en combate y tengo %d vidas.\n", vidas);
  }
}

En el ejemplo anterior, la clase ClasesYObjetos tiene un atributo vidas y dos métodos, atacar() y verificarVida().

package com.caffeinealgorithm.programaremjava;

public class Main {
  public static void main(String[] args) {
    var enemigo1 = new ClasesYObjetos();
    var enemigo2 = new ClasesYObjetos();

    enemigo1.atacar(); // Fui atacado y perdí una vida.
    enemigo1.atacar(); // Fui atacado y perdí una vida.
    enemigo1.atacar(); // Fui atacado y perdí una vida.
    enemigo1.verificarVida(); // Sigo en combate y tengo 2 vidas.
    enemigo2.verificarVida(); // Sigo en combate y tengo 5 vidas.
  }
}

Conclusión

Las clases y los objetos son pilares del paradigma de programación orientada a objetos en Java. Comprender cómo trabajan juntos es esencial para escribir programas Java eficientes y escalables.

Happy coding!