COMPARTE ESTE ARTÍCULO

La programación orientada a objetos (POO) es un paradigma de programación que utiliza “objetos” para modelar datos y métodos asociados. Java es un lenguaje de programación que soporta POO de manera robusta. A continuación, te presento una serie de ejercicios que te ayudarán a mejorar tus habilidades en POO utilizando Java.

Ejercicio 1: Clase Persona

Crea una clase Persona con atributos nombre, edad y dni. Incluye métodos para establecer y obtener los valores de estos atributos, así como un método que muestre la información de la persona.

class Persona {
    private String nombre;
    private int edad;
    private String dni;

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

    public String getNombre() {
        return nombre;
    }

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

    public int getEdad() {
        return edad;
    }

    public void setEdad(int edad) {
        this.edad = edad;
    }

    public String getDni() {
        return dni;
    }

    public void setDni(String dni) {
        this.dni = dni;
    }

    public void mostrarInformacion() {
        System.out.println("Nombre: " + nombre);
        System.out.println("Edad: " + edad);
        System.out.println("DNI: " + dni);
    }
}

public class TestPersona {
    public static void main(String[] args) {
        Persona persona = new Persona("Juan Perez", 30, "12345678A");
        persona.mostrarInformacion();
        persona.setEdad(31);
        System.out.println("Edad actualizada: " + persona.getEdad());
    }
}

Ejercicio 2: Clase CuentaBancaria

Crea una clase CuentaBancaria con atributos numeroCuenta, saldo y titular. Incluye métodos para depositar y retirar dinero, así como un método que muestre el saldo actual.

class CuentaBancaria {
    private String numeroCuenta;
    private double saldo;
    private String titular;

    public CuentaBancaria(String numeroCuenta, String titular) {
        this.numeroCuenta = numeroCuenta;
        this.titular = titular;
        this.saldo = 0.0;
    }

    public String getNumeroCuenta() {
        return numeroCuenta;
    }

    public double getSaldo() {
        return saldo;
    }

    public String getTitular() {
        return titular;
    }

    public void depositar(double cantidad) {
        if (cantidad > 0) {
            saldo += cantidad;
        }
    }

    public boolean retirar(double cantidad) {
        if (cantidad > 0 && cantidad <= saldo) {
            saldo -= cantidad;
            return true;
        }
        return false;
    }

    public void mostrarSaldo() {
        System.out.println("Saldo actual: " + saldo);
    }
}

public class TestCuentaBancaria {
    public static void main(String[] args) {
        CuentaBancaria cuenta = new CuentaBancaria("1234567890", "Ana Gomez");
        cuenta.depositar(500);
        cuenta.mostrarSaldo();
        cuenta.retirar(200);
        cuenta.mostrarSaldo();
        boolean exito = cuenta.retirar(400);
        System.out.println("Retiro exitoso: " + exito);
        cuenta.mostrarSaldo();
    }
}

Ejercicio 3: Clase Círculo y Herencia

Crea una clase Figura con un método calcularArea. Luego, crea una clase Círculo que herede de Figura y sobrescriba el método calcularArea para calcular el área de un círculo.

abstract class Figura {
    public abstract double calcularArea();
}

class Circulo extends Figura {
    private double radio;

    public Circulo(double radio) {
        this.radio = radio;
    }

    public double getRadio() {
        return radio;
    }

    public void setRadio(double radio) {
        this.radio = radio;
    }

    @Override
    public double calcularArea() {
        return Math.PI * radio * radio;
    }
}

public class TestFigura {
    public static void main(String[] args) {
        Circulo circulo = new Circulo(5);
        System.out.println("Área del círculo: " + circulo.calcularArea());
    }
}

Ejercicio 4: Clase Empleado y Polimorfismo

Crea una clase Empleado con atributos nombre y salario, y un método calcularSalario. Luego, crea una clase EmpleadoPorHora que herede de Empleado y sobrescriba el método calcularSalario para calcular el salario en función de las horas trabajadas y la tarifa por hora.

class Empleado {
    protected String nombre;
    protected double salario;

    public Empleado(String nombre) {
        this.nombre = nombre;
        this.salario = 0.0;
    }

    public String getNombre() {
        return nombre;
    }

    public double getSalario() {
        return salario;
    }

    public void setSalario(double salario) {
        this.salario = salario;
    }

    public double calcularSalario() {
        return salario;
    }
}

class EmpleadoPorHora extends Empleado {
    private int horasTrabajadas;
    private double tarifaPorHora;

    public EmpleadoPorHora(String nombre, int horasTrabajadas, double tarifaPorHora) {
        super(nombre);
        this.horasTrabajadas = horasTrabajadas;
        this.tarifaPorHora = tarifaPorHora;
    }

    @Override
    public double calcularSalario() {
        return horasTrabajadas * tarifaPorHora;
    }
}

public class TestEmpleado {
    public static void main(String[] args) {
        Empleado empleadoFijo = new Empleado("Carlos Martinez");
        empleadoFijo.setSalario(3000);
        System.out.println("Salario del empleado fijo: " + empleadoFijo.calcularSalario());

        EmpleadoPorHora empleadoPorHora = new EmpleadoPorHora("Laura Jimenez", 120, 15.5);
        System.out.println("Salario del empleado por hora: " + empleadoPorHora.calcularSalario());
    }
}

Ejercicio 5: Clase Rectángulo con Interfaces

Crea una interfaz Dibujable con un método dibujar. Luego, crea una clase Rectangulo que implemente esta interfaz y defina el método dibujar.

interface Dibujable {
    void dibujar();
}

class Rectangulo implements Dibujable {
    private double largo;
    private double ancho;

    public Rectangulo(double largo, double ancho) {
        this.largo = largo;
        this.ancho = ancho;
    }

    public double getLargo() {
        return largo;
    }

    public void setLargo(double largo) {
        this.largo = largo;
    }

    public double getAncho() {
        return ancho;
    }

    public void setAncho(double ancho) {
        this.ancho = ancho;
    }

    @Override
    public void dibujar() {
        System.out.println("Dibujando un rectángulo de " + largo + " x " + ancho);
    }
}

public class TestDibujable {
    public static void main(String[] args) {
        Rectangulo rectangulo = new Rectangulo(10, 5);
        rectangulo.dibujar();
    }
}

Conclusión

Estos ejercicios te proporcionarán una base sólida para trabajar con programación orientada a objetos en Java. Practicar estos conceptos es esencial para desarrollar tus habilidades de programación y te permitirá abordar problemas más complejos en el futuro. ¡Sigue practicando y explorando más sobre Java para convertirte en un programador más competente!

… … …

¡Coméntanos que te ha parecido este artículo al final de la página!

TÚ OPINIÓN IMPORTA


NUESTRAS ÚLTIMAS PUBLICACIONES

Contenido restringido

Acceso de usuarios existentes
   
Registro de un nuevo usuario
*Campo necesario

Categories:

Tags:

Comments are closed

Estado de acceso
ESTADO DE ACCESO
TRADUCTORES
COMPARTENOS
error: CONTENIDO PROTEGIDO