└── src └── bytebank ├── Cliente.java ├── CrearCuenta.java ├── Cuenta.java ├── TestCuentaConCliente.java ├── TestCuentaSinCliente.java ├── TestGetSet.java ├── TestMetodos.java ├── TestReferencias.java ├── TestSacaNegativo.java └── TestValores.java /src/bytebank/Cliente.java: -------------------------------------------------------------------------------- 1 | package bytebank; 2 | 3 | public class Cliente { 4 | 5 | private String nombre; 6 | private String documento; 7 | private String telefono; 8 | 9 | public String getNombre() { 10 | return nombre; 11 | } 12 | 13 | public void setNombre(String nombre) { 14 | this.nombre = nombre; 15 | } 16 | 17 | public String getDocumento() { 18 | return documento; 19 | } 20 | 21 | public void setDocumento(String documento) { 22 | this.documento = documento; 23 | } 24 | 25 | public String getTelefono() { 26 | return telefono; 27 | } 28 | 29 | public void setTelefono(String telefono) { 30 | this.telefono = telefono; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/bytebank/CrearCuenta.java: -------------------------------------------------------------------------------- 1 | package bytebank; 2 | 3 | public class CrearCuenta { 4 | 5 | public static void main(String[] args) { 6 | Cuenta primeraCuenta = new Cuenta(); 7 | // primeraCuenta.saldo = 200; 8 | primeraCuenta.deposita(200); 9 | System.out.println(primeraCuenta.getSaldo()); 10 | 11 | // primeraCuenta.saldo += 100; 12 | primeraCuenta.deposita(100); 13 | System.out.println(primeraCuenta.getSaldo()); 14 | 15 | Cuenta segundaCuenta = new Cuenta(); 16 | // segundaCuenta.saldo = 50; 17 | segundaCuenta.deposita(50); 18 | 19 | System.out.println("primera Cuenta tiene " + primeraCuenta.getSaldo()); 20 | System.out.println("segunda Cuenta tiene " + segundaCuenta.getSaldo()); 21 | 22 | System.out.println(primeraCuenta.getAgencia()); 23 | System.out.println(primeraCuenta.getNumero()); 24 | 25 | System.out.println(segundaCuenta.getAgencia()); 26 | 27 | // segundaCuenta.agencia = 146; 28 | segundaCuenta.setAgencia(146); 29 | System.out.println("Ahora la segunda cuenta esta en la agencia " + segundaCuenta.getAgencia()); 30 | 31 | if(primeraCuenta == segundaCuenta) { 32 | System.out.println("misma cuenta"); 33 | } else { 34 | System.out.println("cuentas diferentes"); 35 | } 36 | 37 | System.out.println(primeraCuenta); 38 | System.out.println(segundaCuenta); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src/bytebank/Cuenta.java: -------------------------------------------------------------------------------- 1 | package bytebank; 2 | 3 | public class Cuenta { 4 | 5 | private double saldo; 6 | private int agencia = 1; 7 | private int numero; 8 | private Cliente titular = new Cliente(); 9 | 10 | private static int total; 11 | 12 | public Cuenta( int agencia, int numero) { 13 | this.agencia = agencia; 14 | this.numero = numero; 15 | System.out.println("Estoy creando una cuenta " + this.numero); 16 | 17 | Cuenta.total ++; 18 | } 19 | 20 | public void deposita(double valor) { 21 | this.saldo = this.saldo + valor; 22 | } 23 | 24 | public boolean saca(double valor) { 25 | if(this.saldo >= valor) { 26 | this.saldo -= valor; 27 | return true; 28 | } else { 29 | return false; 30 | } 31 | } 32 | 33 | public boolean transfiere(double valor, Cuenta destino) { 34 | if(this.saldo >= valor) { 35 | this.saldo -= valor; 36 | destino.deposita(valor); 37 | return true; 38 | } else { 39 | return false; 40 | } 41 | } 42 | 43 | public double getSaldo() { 44 | return saldo; 45 | } 46 | 47 | public int getAgencia() { 48 | return agencia; 49 | } 50 | 51 | public void setAgencia(int agencia) { 52 | if (agencia > 0) { 53 | this.agencia = agencia; 54 | } 55 | } 56 | 57 | public int getNumero() { 58 | return numero; 59 | } 60 | 61 | public void setNumero(int numero) { 62 | if (numero > 0) { 63 | this.numero = numero; 64 | } 65 | } 66 | 67 | public Cliente getTitular() { 68 | return titular; 69 | } 70 | 71 | public void setTitular(Cliente titular) { 72 | this.titular = titular; 73 | } 74 | 75 | public static int getTotal() { 76 | return Cuenta.total; 77 | } 78 | 79 | } 80 | -------------------------------------------------------------------------------- /src/bytebank/TestCuentaConCliente.java: -------------------------------------------------------------------------------- 1 | package bytebank; 2 | 3 | public class TestCuentaConCliente { 4 | 5 | public static void main(String[] args) { 6 | Cliente diego = new Cliente(); 7 | diego.nombre = "Diego Rojas"; 8 | diego.documento = "33442211"; 9 | diego.telefono = "987654321"; 10 | 11 | Cuenta cuentaDeDiego = new Cuenta(); 12 | cuentaDeDiego.deposita(100); 13 | 14 | // cuentaDeDiego.titular = diego; 15 | cuentaDeDiego.setTitular(diego); 16 | System.out.println(cuentaDeDiego.getTitular().getNombre()); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/bytebank/TestCuentaSinCliente.java: -------------------------------------------------------------------------------- 1 | package bytebank; 2 | 3 | public class TestCuentaSinCliente { 4 | 5 | public static void main(String[] args) { 6 | Cuenta cuentaDeJimena = new Cuenta(); 7 | System.out.println(cuentaDeJimena.getSaldo()); 8 | 9 | // Descomentar esta linea para evitar el NullPointerException 10 | // cuentaDeJimena.titular = new Cliente(); Antiguo 11 | // cuentaDeJimena.setTitular(new Cliente()); Nuevo 12 | 13 | System.out.println(cuentaDeJimena.getTitular()); 14 | 15 | // cuentaDeJimena.titular.nombre = "Jimena"; 16 | cuentaDeJimena.getTitular().setNombre("Jimena"); 17 | System.out.println(cuentaDeJimena.getTitular().getNombre()); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/bytebank/TestGetSet.java: -------------------------------------------------------------------------------- 1 | package bytebank; 2 | 3 | public class TestGetSet { 4 | 5 | public static void main(String[] args) { 6 | Cuenta cuenta = new Cuenta(); 7 | 8 | cuenta.setNumero(1337); 9 | System.out.println(cuenta.getNumero()); 10 | 11 | Cliente diego = new Cliente(); 12 | diego.setNombre("Diego Rojas"); 13 | 14 | cuenta.setTitular(diego); 15 | 16 | System.out.println(cuenta.getTitular().getNombre()); 17 | 18 | cuenta.getTitular().setTelefono("9944332211"); 19 | //ahora en dos lineas 20 | Cliente titular = cuenta.getTitular(); 21 | titular.setTelefono("9944332211"); 22 | 23 | System.out.println(titular); 24 | System.out.println(diego); 25 | System.out.println(cuenta.getTitular()); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/bytebank/TestMetodos.java: -------------------------------------------------------------------------------- 1 | package bytebank; 2 | 3 | public class TestMetodos { 4 | 5 | public static void main (String[] args) { 6 | Cuenta cuentaDeDiego = new Cuenta(); 7 | // cuentaDeDiego.saldo = 100; 8 | cuentaDeDiego.deposita(100); 9 | cuentaDeDiego.deposita(50); 10 | System.out.println(cuentaDeDiego.getSaldo()); 11 | 12 | boolean consigioRetirar = cuentaDeDiego.saca(20); 13 | System.out.println(cuentaDeDiego.getSaldo()); 14 | System.out.println(consigioRetirar); 15 | 16 | Cuenta cuentaDeJimena = new Cuenta(); 17 | cuentaDeJimena.deposita(1000); 18 | 19 | boolean exitoTransferencia = cuentaDeJimena.transfiere(300, cuentaDeDiego); 20 | if(exitoTransferencia) { 21 | System.out.println("transferencia exitosa"); 22 | } else { 23 | System.out.println("falto dinero"); 24 | } 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/bytebank/TestReferencias.java: -------------------------------------------------------------------------------- 1 | package bytebank; 2 | 3 | public class TestReferencias { 4 | 5 | public static void main(String[] args) { 6 | Cuenta primeraCuenta = new Cuenta(); 7 | // primeraCuenta.saldo = 300; 8 | primeraCuenta.deposita(300); 9 | 10 | System.out.println("saldo de primera cuenta : " + primeraCuenta.getSaldo()); 11 | 12 | Cuenta segundaCuenta = primeraCuenta; 13 | 14 | System.out.println("saldo de segunda Cuenta: " + segundaCuenta.getSaldo()); 15 | 16 | // segundaCuenta.saldo += 100; 17 | segundaCuenta.deposita(100); 18 | System.out.println("saldo de segunda Cuenta " + segundaCuenta.getSaldo()); 19 | 20 | System.out.println(primeraCuenta.getSaldo()); 21 | 22 | if(primeraCuenta == segundaCuenta) { 23 | System.out.println("Es la misma cuenta"); 24 | } 25 | 26 | System.out.println(primeraCuenta); 27 | System.out.println(segundaCuenta); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/bytebank/TestSacaNegativo.java: -------------------------------------------------------------------------------- 1 | package bytebank; 2 | 3 | public class TestSacaNegativo { 4 | 5 | public static void main(String[] args) { 6 | Cuenta cuenta = new Cuenta(); 7 | cuenta.deposita(100); 8 | System.out.println(cuenta.saca(200)); 9 | System.out.println(cuenta.getSaldo()); 10 | 11 | // prohibido (solucionado) 12 | // cuenta.saldo = cuenta.saldo - 101; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/bytebank/TestValores.java: -------------------------------------------------------------------------------- 1 | package bytebank; 2 | 3 | public class TestValores { 4 | 5 | public static void main(String[] args) { 6 | // Cuenta cuenta = new Cuenta(); 7 | // cuenta.setAgencia(-50); 8 | // cuenta.setNumero(-330); 9 | 10 | Cuenta cuenta = new Cuenta(1337, 24226); 11 | 12 | System.out.println(cuenta.getAgencia()); 13 | cuenta.setAgencia(1232123); 14 | 15 | Cuenta cuenta2 = new Cuenta(1337, 16549); 16 | Cuenta cuenta3 = new Cuenta(2112, 14660); 17 | 18 | System.out.println(Cuenta.getTotal()); 19 | 20 | } 21 | } 22 | --------------------------------------------------------------------------------