Anuncios Google

[Java] como relaciono estas dos clases entre si?

Estoy haciendo en java un ejercicio, de crear un banco, hay tres clases diferentes,  Clase Persona, Clase CuentaBanco y Clase Banco.

En la clase CUentaBanco, tengo unas cuantas variables de la cuenta del banco (saldo, interes, numero de cuenta, sucursal, etc Y Otras dos de la Clase Persona, "Titular", "Cotitular")

En la clase Persona, variables(edad, peso, etc, Y Otra variable de la clase CuentaBanco "cb") 

Y en la clase Banco, tengo que relaccionar estas dos clases, dejo el codigo de esta clase para indicar bien donde estoy atascado, esta es:

public class Banco {
 
    private CuentaBanco[] cuentas;
    private static int contadorBanco=0;
    private int ampliaciones=0;
 
    public Banco(){
        cuentas=new CuentaBanco[5];
        //Este "for" deberia hacerlo en el metodo abrirCuenta(); mejor
        for(int i=0; i<5;i++){
            cuentas[i]=new CuentaBanco();
        }
 
    }
 
    public Banco(int nc){
 
        int nCuentas=nc;
        cuentas=new CuentaBanco[nCuentas];
 
        for(int i=0;i<nCuentas;i++){
            cuentas[i]=new CuentaBanco();
        }
    }
 
    public void abrirCuenta(Persona p, String sucursal){
    //AQUI ME QUEDO EN BLANCO!!
 
    }

 

En el metodo de abrirCuenta es donde no se que poner, me quedo atascado, no se como abrir una cuenta y relaccionarla con la Persona.

No se si me he explicado muy bien xD pero si alguien me puede ayudar muchas gracias!

Saludos!



Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ALCales

Si si eso mas o menos lo

Si si eso mas o menos lo entiendo, por ejemplo en la clase Persona tengo la variable CuentaBanco que se llama "cb"

Pero no se como abrir una cuenta banco en la persona. No se como relaccionarlo bien, por ejemplo para poner el nombre de la sucursal hago esto?

no se si quiera si tiene sentido... xD

public void abrirCuenta(Persona p, String sucursal){
 
    p.cb=/*metodo de la clase CuentaBanco*/ ponSucursal(sucursal);
 
 
}
p


Pues si, aunque si vas a

Pues si, aunque si vas a añadir varias cuentas, entonces deberías trabajar con copias de la clase donde almacenas las variables (nombreClase copia = new nombreClase()) y usas las variables refiriéndote a la copia, no a la clase (copia.variable), de otra manera cuando añadas una nueva cuenta se va sobreescribir la anterior.

También puedes declarar las variables con las que vas a trabajar como arrays o lists (las lists molan más xD), y variar su índice para almacenar todas las cuentas que gustes (si lo haces de esta manera, no hace falta hacer copias de la clase, se puede trabajar directo sobre ella).

Imagen de joserc87

Miembro privado.

Ten en cuenta que cb puede no ser un miembro público (por lo general las variables suelen ser privadas), así que en lugar de usar la asignación tendrías que tener un método como "cambiaSucursal" en la clase Persona así como otros tantos otros métodos para cada variable de la cuenta.

Otra opción bastante más elegante es crear un método "creaCuenta" en la clase Banco, que cree una cuenta, la almacene y la devuelva de forma que puedas hacer algo así:

public void abrirCuenta(Persona p, String sucursal){
    p.cambiaCuenta (creaCuenta (sucursal));
}
 
public CuentaBanco creaCuenta (String sucursal){
  final float sando=0;
  final float interes=10;
  // Etc.
  CuentaBanco cuenta = new CuentaBanco (sucursal, saldo, interes...);
  // Agrandar el vector cuentas para un elemento más, etc
  // ...
  cuentas [i] = cuenta;
  return cuenta;
}

Aunque hay muchas otras formas de hacerlo.

Saludos.


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Entendí que quieres usar

Entendí que quieres usar variables de una clase en otra, correcto? Eso es sencillísimo, sólo tienes que poner nombreClase.variable y listo.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.