Saltar a contenido

Semana 2 - Clases y Objetos en Java

Objetivos de la Clase

  • Comprender la definición y propósito de clases y objetos en la programación orientada a objetos (POO).
  • Aprender a declarar atributos y métodos en una clase.
  • Dominar la creación e instanciación de objetos en Java.
  • Aplicar estos conceptos en ejemplos contextualizados para la región de Colombia, utilizando casos relacionados con elementos representativos como el fútbol.

1. Definición de Clases y Objetos

1.1. Clases

Una clase en Java es una plantilla que define las características (atributos) y comportamientos (métodos) de un tipo de entidad. Actúa como un molde para crear objetos. Por ejemplo, una clase JugadorFutbol puede representar a un jugador de fútbol con características como su nombre y número de camiseta.

Image title
Image caption
public class JugadorFutbol {
    String nombre; // Atributo
    int numeroCamiseta; // Atributo
}

1.2. Objetos

Un objeto es una instancia específica de una clase. Representa una entidad concreta creada a partir del molde de la clase. Por ejemplo, un objeto de la clase JugadorFutbol podría ser un jugador específico como "James Rodríguez" con el número de camiseta 10.

Image title
Image caption
JugadorFutbol jugador = new JugadorFutbol(); // Creación de un objeto
jugador.nombre = "James Rodríguez";
jugador.numeroCamiseta = 10;

1.3. Relación entre Clases y Objetos

  • La clase es como el diseño de un estadio de fútbol: define la estructura (tribunas, campo, vestuarios).
  • El objeto es un estadio específico, como el Estadio Metropolitano de Barranquilla, que sigue ese diseño pero con detalles únicos.

2. Atributos y Métodos

2.1. Atributos

Los atributos son variables definidas dentro de una clase que representan las propiedades o datos de un objeto. En el contexto de un jugador de fútbol, los atributos podrían incluir el nombre, la posición en el campo y el número de goles anotados.

Image title
Image caption
public class JugadorFutbol {
    String nombre; // Atributo para el nombre del jugador
    String posicion; // Atributo para la posición (ej. "Delantero")
    int golesAnotados; // Atributo para el número de goles
}

2.2. Métodos

Los métodos son funciones definidas dentro de una clase que describen los comportamientos o acciones que un objeto puede realizar. Por ejemplo, un jugador puede "anotar un gol" o "presentarse".

public class JugadorFutbol {
    String nombre;
    String posicion;
    int golesAnotados;

    // Método para anotar un gol
    void anotarGol() {
        golesAnotados++;
        System.out.println(nombre + " ha anotado un gol. Total: " + golesAnotados);
    }

    // Método para presentarse
    void presentarse() {
        System.out.println("Soy " + nombre + ", juego como " + posicion + " y he anotado " + golesAnotados + " goles.");
    }
}

2.3. Encapsulamiento Básico

Para proteger los atributos, es una buena práctica declararlos como private y proporcionar métodos public (getters y setters) para acceder o modificarlos. Esto se explorará más a fondo en clases posteriores.

Image title
Image caption
public class JugadorFutbol {
    private String nombre;
    private String posicion;
    private int golesAnotados;

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
}

3. Creación e Instanciación de Objetos

3.1. Creación de Objetos

Para crear un objeto, se utiliza la palabra clave new seguida del nombre de la clase y paréntesis. Esto instancia un objeto en memoria.

JugadorFutbol jugador1 = new JugadorFutbol(); // Instanciación de un objeto

3.2. Inicialización de Atributos

Los atributos de un objeto se inicializan asignándoles valores directamente o mediante métodos setters.

jugador1.nombre = "Luis Díaz"; // Asignación directa (si el atributo es público)
jugador1.posicion = "Delantero";
jugador1.golesAnotados = 5;

3.3. Uso de Métodos

Una vez creado el objeto, se pueden invocar sus métodos para realizar acciones.

jugador1.presentarse(); // Imprime: Soy Luis Díaz, juego como Delantero y he anotado 5 goles.
jugador1.anotarGol(); // Imprime: Luis Díaz ha anotado un gol. Total: 6

3.4. Ejemplo Completo

El siguiente programa crea dos objetos de la clase JugadorFutbol y utiliza sus métodos.

public class Main {
    public static void main(String[] args) {
        // Crear el primer jugador
        JugadorFutbol jugador1 = new JugadorFutbol();
        jugador1.nombre = "Luis Díaz";
        jugador1.posicion = "Delantero";
        jugador1.golesAnotados = 5;

        // Crear el segundo jugador
        JugadorFutbol jugador2 = new JugadorFutbol();
        jugador2.nombre = "Juan Cuadrado";
        jugador2.posicion = "Mediocampista";
        jugador2.golesAnotados = 2;

        // Usar métodos
        jugador1.presentarse();
        jugador1.anotarGol();
        jugador2.presentarse();
    }
}

Salida esperada:

Soy Luis Díaz, juego como Delantero y he anotado 5 goles.
Luis Díaz ha anotado un gol. Total: 6
Soy Juan Cuadrado, juego como Mediocampista y he anotado 2 goles.


Actividad

  1. Inicia sesión en GitHub.
  2. Ve a https://github.com/jfinfocesde/b1s2.git.
  3. Haz clic en Fork (arriba a la derecha) y selecciona tu cuenta.
  4. Clona tu fork:
    git clone https://github.com/tu-usuario/b1s2.git
    cd b1s2