Clases Operacion y Cuenta en Java: Implementación y Ejemplo Práctico

Clasificado en Informática

Escrito el en español con un tamaño de 6,12 KB

Solución al Ejercicio 1: Clases `Operacion` y `Cuenta` en Java

a) Clase `Operacion`

La clase Operacion representa una transacción bancaria individual. Incluye atributos como la fecha (día, mes, año), la cantidad y el concepto de la operación.


class Operacion {
    int dia;
    int mes;
    int anyo;
    double cantidad;
    String concepto;

    public Operacion(int dia, int mes, int anyo, double cantidad, String concepto) {
        this.dia = dia;
        this.mes = mes;
        this.anyo = anyo;
        this.cantidad = cantidad;
        this.concepto = concepto;
    }

    public int getDia() {
        return dia;
    }

    public int getMes() {
        return mes;
    }

    public int getAnyo() {
        return anyo;
    }

    public double getCantidad() {
        return cantidad;
    }

    public String getConcepto() {
        return concepto;
    }

    public String toString() {
        java.text.DecimalFormat form = new java.text.DecimalFormat();
        form.setMaximumFractionDigits(2);
        return "Fecha " + dia + "/" + mes + "/" + anyo + "," +
                "Cantidad: " + form.format(cantidad) + "euros" + "," +
                "Concepto: " + concepto;
    }
}

  • Atributos:
    • dia: Representa el día de la operación.
    • mes: Representa el mes de la operación.
    • anyo: Representa el año de la operación.
    • cantidad: Representa la cantidad de dinero involucrada en la operación.
    • concepto: Describe la naturaleza de la operación (por ejemplo, "Ingreso", "Extracción").
  • Métodos:
    • Constructor: Inicializa una nueva instancia de Operacion.
    • getDia(), getMes(), getAnyo(): Devuelven la fecha de la operación.
    • getCantidad(): Devuelve la cantidad de la operación.
    • getConcepto(): Devuelve el concepto de la operación.
    • toString(): Devuelve una representación en String de la operación, incluyendo la fecha, la cantidad formateada y el concepto.

b) Clase `Cuenta`

La clase Cuenta representa una cuenta bancaria que puede contener múltiples operaciones. Incluye atributos como el nombre y apellidos del titular, un array para almacenar las operaciones y un contador del total de operaciones realizadas.


class Cuenta {
    private String nombre;
    private String apellidos;
    private Operacion[] Movimientos;
    private int TotalDeOperaciones = 0;

    public Cuenta(String nombre, String apellidos, Operacion primeraOperacion) {
        Movimientos = new Operacion[1000];
        this.nombre = nombre;
        this.apellidos = apellidos;
        realizaOperacion(primeraOperacion);
    }

    public void realizaOperacion(Operacion nuevoMovimiento) {
        Movimientos[TotalDeOperaciones] = nuevoMovimiento;
        TotalDeOperaciones++;
    }

    public Operacion getOperacion(int codigo) {
        if (codigo < TotalDeOperaciones) {
            return Movimientos[codigo];
        } else {
            return null;
        }
    }

    public int getNumeroDeOperaciones() {
        return TotalDeOperaciones;
    }

    public int getOperaciones(int dia, int mes, int anyo) {
        int contador = 0;
        for (int i = 0; i < TotalDeOperaciones; i++) {
            if (Movimientos[i].getDia() == dia && Movimientos[i].getMes() == mes && Movimientos[i].getAnyo() == anyo) {
                contador++;
            }
        }
        return contador;
    }
}

  • Atributos:
    • nombre: Nombre del titular de la cuenta.
    • apellidos: Apellidos del titular de la cuenta.
    • Movimientos: Un array de objetos Operacion que almacena las operaciones realizadas en la cuenta.
    • TotalDeOperaciones: Un contador que lleva el registro del número total de operaciones realizadas.
  • Métodos:
    • Constructor: Inicializa una nueva instancia de Cuenta con el nombre y apellidos del titular y la primera operación.
    • realizaOperacion(): Añade una nueva operación al array Movimientos e incrementa TotalDeOperaciones.
    • getOperacion(): Devuelve la operación correspondiente al código proporcionado, o null si el código es inválido.
    • getNumeroDeOperaciones(): Devuelve el número total de operaciones realizadas.
    • getOperaciones(): Devuelve el número de operaciones realizadas en una fecha específica.

c) Método `main` y Ejemplo de Uso

El método main crea una instancia de Cuenta y realiza varias operaciones. Luego, imprime el número total de operaciones y la primera operación realizada.


public static void main(String[] args) {
    Operacion operacion1MiCliente = new Operacion(12, 12, 2015, 1500, "Ingreso");
    Cuenta cuentaMiCliente = new Cuenta("Pepe", "Garcia", operacion1MiCliente);
    Operacion operacion2MiCliente = new Operacion(11, 2, 2016, -500, "Extracción");
    Operacion operacion3MiCliente = new Operacion(12, 2, 2016, 500, "Ingreso");
    Operacion operacion4MiCliente = new Operacion(13, 2, 2016, -500, "Extracción");
    cuentaMiCliente.realizaOperacion(operacion2MiCliente);
    cuentaMiCliente.realizaOperacion(operacion3MiCliente);
    cuentaMiCliente.realizaOperacion(operacion4MiCliente);

    System.out.print(cuentaMiCliente.getNumeroDeOperaciones());
    System.out.print(cuentaMiCliente.getOperacion(0));
}

En este ejemplo, se crea una cuenta para "Pepe Garcia" y se realizan cuatro operaciones. La salida del programa será:


4
Fecha 12/12/2015, Cantidad: 1500,00 euros, Concepto: Ingreso

Esto indica que se han realizado cuatro operaciones en la cuenta y muestra los detalles de la primera operación.

Entradas relacionadas: