Una taza de café construida con las letras de JAVA

Ejercicios prácticos en Java: Crear clases simples

Guía de programación en Java > Ejercicios sobre clases

Introducción

En esta sesión, pondremos en práctica todo lo aprendido sobre la Programación Orientada a Objetos (POO). Diseñaremos y trabajaremos con clases simples como Persona y Coche, aplicando conceptos como constructores, campos, métodos, getters y setters. Al finalizar, serás capaz de crear tus propias clases y trabajar con objetos de manera efectiva.


Objetivos

  • Diseñar clases simples en Java.
  • Aplicar conceptos de POO como campos, constructores, getters y setters.
  • Manipular objetos y probar su funcionalidad.
  • Entender la importancia de encapsular datos.

Ejemplo 1: Clase Persona

Paso 1: Diseño de la Clase

Definiremos una clase Persona con los siguientes campos:

  • nombre (String): El nombre de la persona.
  • edad (int): La edad de la persona.

También incluiremos:

  • Un constructor para inicializar los campos.
  • Getters y setters para acceder y modificar los campos de manera controlada.
  • Un método saludar() que imprima un saludo personalizado.

Implementación:

class Persona {
    private String nombre;
    private int edad;

    // Constructor
    public Persona(String nombre, int edad) {
        this.nombre = nombre;
        this.edad = edad;
    }

    // Getter para nombre
    public String getNombre() {
        return nombre;
    }

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

    // Getter para edad
    public int getEdad() {
        return edad;
    }

    // Setter para edad
    public void setEdad(int edad) {
        if (edad >= 0) {
            this.edad = edad;
        } else {
            System.out.println("La edad no puede ser negativa.");
        }
    }

    // Método saludar
    public void saludar() {
        System.out.println("Hola, mi nombre es " + nombre + " y tengo " + edad + " años.");
    }
}

Prueba de la Clase

public class Main {
    public static void main(String[] args) {
        Persona persona1 = new Persona("Ana", 25);
        persona1.saludar();

        persona1.setEdad(30);
        System.out.println("Edad actualizada: " + persona1.getEdad());

        persona1.setNombre("Laura");
        persona1.saludar();
    }
}

Salida Esperada

Hola, mi nombre es Ana y tengo 25 años.
Edad actualizada: 30
Hola, mi nombre es Laura y tengo 30 años.


Ejemplo 2: Clase Coche

Paso 1: Diseño de la Clase

Definiremos una clase Coche con los siguientes campos:

  • marca (String): La marca del coche.
  • modelo (String): El modelo del coche.
  • velocidad (int): La velocidad actual del coche.

También incluiremos:

  • Un constructor para inicializar los campos.
  • Getters y setters para los campos.
  • Métodos acelerar() y frenar() para modificar la velocidad.

Implementación:

class Coche {
    private String marca;
    private String modelo;
    private int velocidad;

    // Constructor
    public Coche(String marca, String modelo) {
        this.marca = marca;
        this.modelo = modelo;
        this.velocidad = 0; // Velocidad inicial
    }

    // Getters y Setters
    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public String getModelo() {
        return modelo;
    }

    public void setModelo(String modelo) {
        this.modelo = modelo;
    }

    public int getVelocidad() {
        return velocidad;
    }

    public void setVelocidad(int velocidad) {
        if (velocidad >= 0) {
            this.velocidad = velocidad;
        } else {
            System.out.println("La velocidad no puede ser negativa.");
        }
    }

    // Método acelerar
    public void acelerar(int incremento) {
        if (incremento > 0) {
            velocidad += incremento;
            System.out.println("El coche ha acelerado. Velocidad actual: " + velocidad + " km/h.");
        } else {
            System.out.println("El incremento debe ser positivo.");
        }
    }

    // Método frenar
    public void frenar(int decremento) {
        if (decremento > 0 && velocidad - decremento >= 0) {
            velocidad -= decremento;
            System.out.println("El coche ha frenado. Velocidad actual: " + velocidad + " km/h.");
        } else {
            System.out.println("El decremento es inválido o la velocidad no puede ser negativa.");
        }
    }
}

Prueba de la Clase

public class Main {
    public static void main(String[] args) {
        Coche coche1 = new Coche("Toyota", "Corolla");
        System.out.println("Marca: " + coche1.getMarca() + ", Modelo: " + coche1.getModelo());

        coche1.acelerar(50);
        coche1.frenar(20);
        coche1.frenar(40);
    }
}

Salida Esperada

Marca: Toyota, Modelo: Corolla
El coche ha acelerado. Velocidad actual: 50 km/h.
El coche ha frenado. Velocidad actual: 30 km/h.
El decremento es inválido o la velocidad no puede ser negativa.


Ejercicios Propuestos

  1. Clase Libro:
    • Campos: titulo (String), autor (String), numPaginas (int).
    • Métodos: Constructor, getters y setters, y un método mostrarInfo() que imprima toda la información del libro.
  2. Clase CuentaBancaria:
    • Campos: titular (String), saldo (double).
    • Métodos: Constructor, getters y setters, y métodos depositar(double cantidad) y retirar(double cantidad).
  3. Clase Producto:
    • Campos: nombre (String), precio (double), cantidadStock (int).
    • Métodos: Constructor, getters y setters, y un método actualizarStock(int cantidad) que modifique el stock disponible.

Resumen

  • Diseñar clases simples te ayuda a entender los fundamentos de la POO.
  • Los getters y setters garantizan el control y la seguridad de los datos.
  • La práctica constante con ejemplos como Persona o Coche mejora tus habilidades como programador.

¡Es tu turno de practicar! ¡Crea tus propias clases y dales vida con código! 🚀


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.