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 deOperacion
.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 enString
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 objetosOperacion
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 deCuenta
con el nombre y apellidos del titular y la primera operación.realizaOperacion()
: Añade una nueva operación al arrayMovimientos
e incrementaTotalDeOperaciones
.getOperacion()
: Devuelve la operación correspondiente al código proporcionado, onull
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.