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.
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.
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.
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.
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
- Inicia sesión en GitHub.
- Ve a https://github.com/jfinfocesde/b1s2.git.
- Haz clic en Fork (arriba a la derecha) y selecciona tu cuenta.
- Clona tu fork:
git clone https://github.com/tu-usuario/b1s2.git cd b1s2