Ejemplo de ejercicio en Java de Programación Orientada a Objetos (POO) para crear un clase y definir unos métodos. Luego se instancia la clase para ser usada. Se crea una clase para tratamiento de la cuenta bancaria (establecer titular y saldo inicial) y un método para transferir saldo entre cuentas. Se muestra por consola cómo quedan las cuentas bancarias tras su creación, establecimiento de titular, de saldo y transferencia de saldo entre cuentas.
- Enunciado del ejercicio en Java de POO Cuentas Bancarias.
- Desarrollo del ejercicio completo en Java Cuentas Bancarias – Solución.
- Resultado de la ejecución de la aplicación Java.
Enunciado del ejercicio en Java de POO Cuentas Bancarias
Crear una clase que permita crear cuentas bancarias. La clase ha de tener los siguientes requisitos:
- Nombre: CCC.
- Tendrá las siguientes propiedades:
- saldoDeCuenta, de tipo double.
- nombreDelTitular, de tipo String.
- numeroDeCuenta, de tipo long.
- Constructor de la clase con dos parámetros:
- nombreDelTitular, de tipo String.
- saldoDeCuenta, de tipo double.
- Métodos de la clase:
- Se crearán dos setters, uno para hacer ingresos (setIngreso) y otro para hacer reintegros (setReintegro). Se crearán en un objeto de tipo CCC.
- Se crearán dos getters, uno permitirá obtener el saldo (getSaldoCuenta) de la cuenta corriente y el otro obtendrá los datos generales (getDatosCuenta) de una CCC.
- Se creará un método (RealizarTransferenciaEntreCuentas) para permitir realizar transferencias de dinero de una cuenta a otra (de una CCC a otra).
El constructor de la clase CCC será el encargado de establecer:
- Un nombre para el titular de la cuenta corriente
- Un saldo inicial para la cuenta corriente.
- Asignará un número de cuenta corriente, de tipo long, de forma aleatoria.
La clase CCC se creará en una clase principal llamada OperacionesBanco. En esta clase principal OperacionesBanco se crearán dos instancias de la clase CCC, con el nombre CCC_1 y CCC_2.
Para probar la correcta creación de los métodos de CCC, se realizará una transferencia desde la CCC_1 a la CCC_2. Se mostrarán todos los datos de ambas cuentas CCC_1 y CCC_2 para comprobar cómo han quedado.
Desarrollo del ejercicio completo en Java Cuentas Bancarias – Solución
Para el desarrollo del ejemplo Java usaremos el IDE IntelliJ IDEA, aunque se puede usar cualquier otro IDE, incluso un editor de texto y compilar con javac.
Crearemos un nuevo proyecto Java, con plantilla Command Line App:
Y con el nombre OperacionesBanco:
Crearemos una clase pulsando con el botón derecho sobre «src» en el explorador del proyecto:
Estableceremos el nombre CCC para la clase, tal y como se indica en el ejercicio:
Añadiremos el siguiente código Java para la clase CCC:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; import java.util.Random; class CCC { //Propiedades de la clase CCC private double saldoDeCuenta; private String nombreDelTitular; private long numeroDeCuenta; //Constructor de la clase CCC public CCC (String nombreDelTitular, double saldoDeCuenta) { this.saldoDeCuenta = saldoDeCuenta; this.nombreDelTitular = nombreDelTitular; Random numAleatorioCuenta = new Random(); this.numeroDeCuenta = Math.abs(numAleatorioCuenta.nextLong()); } //Setters //Setter para aumentar el saldo de la cuenta bancaria (hacer un ingreso) public void setIngreso (double ingreso) { if (ingreso <= 0) System.out.println("El ingreso debe ser superior a cero euros"); else saldoDeCuenta = saldoDeCuenta + ingreso; } //Setter para disminuir el saldo de la cuenta bancaria (sacar dinero) public void setReintegro (double reintegro) { if (reintegro <= 0) System.out.println("El reintegro debe ser superior a cero euros"); else saldoDeCuenta = saldoDeCuenta - reintegro; } //Getters //Getter que devuelve el saldo actual de la cuenta bancaria public Double getSaldoCuenta () { return saldoDeCuenta; } //Getter que obtiene todos los datos de la cuenta bancaria en un List //Se puede usar cualquier otra opción para devolver los datos public List<String> getDatosCuenta () { List<String> datosCuenta = new ArrayList<>(); datosCuenta.add(nombreDelTitular); datosCuenta.add(Long.toString(numeroDeCuenta)); //Redondeamos a dos decimales el saldo DecimalFormat saldoRedondeado = new DecimalFormat("###.##"); datosCuenta.add(saldoRedondeado.format(saldoDeCuenta)); return datosCuenta; } //Métodos //Método que incrementa el saldo de una CCC de destino y lo decrementa en la CCC origen //Para realizar una transferencia de una CCC a otra public static void RealizarTransferenciaEntreCuentas (CCC ccc1, CCC ccc2, double importeTransferencia) { ccc1.saldoDeCuenta = ccc1.saldoDeCuenta - importeTransferencia; ccc2.saldoDeCuenta = ccc2.saldoDeCuenta + importeTransferencia; } } |
En la clase principal, que se crea automáticamente, le cambiaremos el nombre Main por OperacionesBanco y agregaremos el siguiente código Java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
import javafx.util.Pair; import java.util.List; import java.util.Scanner; public class OperacionesBanco { public static void main(String[] args) { //Para la primera cuenta bancaria System.out.println("Cuenta bancaria 1"); //Pedimos el Titular y el Saldo de la primera cuenta bancaria //Lo almacenamos en un Pair (titular, saldo) Pair<String, Double> datos = pedirDatosUsuario(); //Instanciar la clase CCC y crear la clase CCC_1 CCC CCC_1 = new CCC (datos.getKey(), datos.getValue()); //Repetimos el mismo proceso para crear la CCC_2 //Para la segunda cuenta bancaria System.out.println("Cuenta bancaria 2"); datos = pedirDatosUsuario(); CCC CCC_2 = new CCC (datos.getKey(), datos.getValue()); //Hacemos una transferencia desde la CCC_1 a la CCC_2 Double importe = pedirImporteUsuario(); CCC.RealizarTransferenciaEntreCuentas(CCC_1, CCC_2, importe); //Mostramos los datos de las cuentas bancarias por consola System.out.println("Datos de la CCC 1"); List<String> datosCuenta; datosCuenta = CCC_1.getDatosCuenta(); System.out.println(" -> Titular: " + datosCuenta.get(0)); System.out.println(" -> Nº de cuenta: " + datosCuenta.get(1)); System.out.println(" -> Saldo: " + datosCuenta.get(2)); System.out.println("\nDatos de la CCC 2"); datosCuenta = CCC_2.getDatosCuenta(); System.out.println(" -> Titular: " + datosCuenta.get(0)); System.out.println(" -> Nº de cuenta: " + datosCuenta.get(1)); System.out.println(" -> Saldo: " + datosCuenta.get(2)); } //Solicita el titular de la cuenta y el saldo por consola al usuario //Almacena los datos en un Pair, donde la Key será el Titular y el Value el saldo public static Pair<String, Double> pedirDatosUsuario() { //Pedimos los datos al usuario por consola para la primera cuenta corriente System.out.print ("Introduzca el nombre del titular: "); Scanner entradaEscaner = new Scanner (System.in); //Creamos de un objeto Scanner String titular = entradaEscaner.nextLine (); //Invocamos un método sobre el objeto Scanner Double saldo = 0.0; System.out.print ("Introduzca el saldo inicial: "); //Comprueba que sólo se introduzcan números válidos (Double) while(!entradaEscaner.hasNextDouble()) { System.out.print("No ha introducido un saldo correcto.\n" + "Vuelva a intentarlo (sólo números y decimales): "); entradaEscaner.nextLine(); } saldo = entradaEscaner.nextDouble(); return new Pair<>(titular, saldo); } //Solicita el importe a transferir entre cuentas al usuario public static Double pedirImporteUsuario() { //Pedimos el importe al usuario por consola Scanner entradaEscaner = new Scanner (System.in); //Creamos de un objeto Scanner Double importe = 0.0; System.out.print ("\nIntroduzca el importe a transferir entre cuentas: "); //Comprueba que sólo se introduzcan números válidos (Double) while(!entradaEscaner.hasNextDouble()) { System.out.print("No ha introducido un importe correcto.\n" + "Vuelva a intentarlo (sólo números y decimales): "); entradaEscaner.nextLine(); } importe = entradaEscaner.nextDouble(); entradaEscaner.close(); return importe; } } |
Resultado de la ejecución de la aplicación Java
A continuación mostramos el resultado de ejecutar la aplicación Java anterior. La aplicación se ejecutará pulsando en «Run»:
Desde la consola (línea de comandos), la aplicación nos solicitará un nombre de titular para la cuenta bancaria 1 y un saldo. Y volverá a solicitarnos otro nombre de titular y saldo para la cuenta bancaria 2. A continuación nos solicitará un importe para transferir desde la cuenta 1 a la cuenta 2. Una vez introducido mostrará el estado de ambas cuentas bancarias tras el saldo inicial y tras realizar la transferencia: