Hola,
Escribo porque me llama la atencion que al momento de ejecutar este codigo
package com.bytebank.test;
import com.bytebank.modelo.CuentaCorriente;
public class TestArreglosReferencias {
public static void main(String[] args) {
CuentaCorriente cc = new CuentaCorriente(23,44);
CuentaCorriente[] cuentas = new CuentaCorriente[5];
cuentas[1] = cc;
System.out.println(cc);
}
}
Me regresa en consola:
Estoy creando una cuenta Numero: 44, Agencia: 23 com.bytebank.modelo.CuentaCorriente@123a439b
Les comparto el codigo de mi clase cuenta y cuentaCorriente:
package com.bytebank.modelo;
/**
* Cuenta va a crear nuevas instancias de CuentaCorriente
*
* @version 1.0
* @author Javier Fernandeza
*
*/
public abstract class Cuenta {
protected double saldo;
private int agencia;
private int numero;
private Cliente titular = new Cliente();
private static int total;
/**
* Instancia una nueva cuenta sin parametros
*/
public Cuenta() {
}
/**
* Instancia una cuenta usando agencia y numero
* @param agencia
* @param numero
*/
public Cuenta(int agencia, int numero) {
this.agencia = agencia;
this.setNumero(numero);
System.out.println("Estoy creando una cuenta");
System.out.println("Numero: " + numero + ", " + "Agencia: "+ agencia);
Cuenta.total++;
}
public abstract void depositar(double valor);
/**
* Este metodo retira dinero de la cuenta y si ocurre un error
* devuelve una excepcion
* @param valor
* @throws SaldoInsuficienteException
*/
public void retirar(double valor) throws SaldoInsuficienteException {
if (this.saldo < valor) {
throw new SaldoInsuficienteException("No tienes saldo suficiente");
}
this.saldo -= valor;
}
public boolean transferir(double valor, Cuenta cuenta) {
if (this.saldo >= valor) {
try {
this.retirar(valor);
} catch (SaldoInsuficienteException e) {
e.printStackTrace();
}
cuenta.depositar(valor);
return true;
} else {
return false;
}
}
public double getSaldo() {
return this.saldo;
}
public int getAgencia() {
return agencia;
}
public void setTitular(Cliente titular) {
this.titular = titular;
}
public Cliente getTitular() {
return titular;
}
public static int getTotal() {
return Cuenta.total;
}
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
if (numero > 0) {
this.numero = numero;
}
}
}
package com.bytebank.modelo;
public class CuentaCorriente extends Cuenta implements Tributacion {
public CuentaCorriente(int agencia, int numero) {
super(agencia, numero);
}
@Override
public void retirar(double valor) throws SaldoInsuficienteException {
// TODO Auto-generated method stub
double comision = 0.2;
super.retirar(valor+comision);
}
@Override
public void depositar(double valor) {
// TODO Auto-generated method stub
super.saldo = super.saldo + valor;
}
@Override
public double getValorImpuesto() {
return super.saldo * 0.01;
}
}