Foros del Web » Programación para mayores de 30 ;) » Java »

Práctica java en Bluej

Estas en el tema de Práctica java en Bluej en el foro de Java en Foros del Web. Hola compas, tengo una duda con un método. Tiene que ser muy simple lo que me falta....pero claro, me falta eso y le estoy echando ...
  #1 (permalink)  
Antiguo 13/07/2011, 10:27
 
Fecha de Ingreso: noviembre-2007
Mensajes: 60
Antigüedad: 16 años, 5 meses
Puntos: 0
Práctica java en Bluej

Hola compas,

tengo una duda con un método. Tiene que ser muy simple lo que me falta....pero claro, me falta eso y le estoy echando horas y nada, no consigo sacar nada en claro!!!

Resulta que estoy con una práctica donde tengod dos clases: Tarjeta y Cuenta (un banco, sí señor).
La clase Cuenta ya la tengo hecha. Incluso tengo un ArrayList donde tengo varias tarjetas para esa cuenta.

Ahora me falta, dentro de la clase Tarjeta, hacer lo siguiente que me piden: (copio y pego):


Por otro lado, vamos a completar dicha relaci´on almacenando en las tarjetas, la cuenta a la que est´an asociadas. Para ello
debemos modificar la clase Tarjeta a˜nadiendo un nuevo atributo cuenta que debe permitir almacenar un objeto de la nueva
clase Cuenta. Adem´as, se debe crear un nuevo m´etodo en la clase Tarjeta, que nos permita asociar una cuenta a una tarjeta.



Para ello mi código es el siguiente (no os asustéis, es muy sencillo y lo único que hace falta es el constructor prácticamente.

CLASE CUENTA


public class Cuenta
{
// instance variables - replace the example below with your own
public static int númerodecuenta;
public int saldodecuenta;
private ArrayList<Tarjeta> Tarjetas;
// private Tarjeta Tarjetas[];


public Cuenta(int cantidad_de_dinero_a_ingresar, int número_de_cuenta)
{
// Distintos constructores de la clase Cuenta.

{if (número_de_cuenta >=0)
númerodecuenta = número_de_cuenta;
else
System.out.println (" Error, debe poner un número mayor que 0 ");}
{if (número_de_cuenta >0)
saldodecuenta = cantidad_de_dinero_a_ingresar;
else
System.out.println (" Error, no se puede ingresar una cantidad negativa ");}
Tarjetas = new ArrayList<Tarjeta> ();
//Tarjetas= new Tarjeta[limite_de_Tarjetas];
}


public int consultar_saldo_cuenta ()
{
// Retorna el número de cuenta
return saldodecuenta;
}


public void asociar_Tarjeta (Tarjeta VisaOro)
{
// Asociar una tarjeta a la cuenta
if (Tarjetas.contains(VisaOro)== true)
System.out.println (" Tarjeta asociada a cuenta ");
else
Tarjetas.add(VisaOro);
}



public void eliminar_Tarjeta(int numero_tarjeta)
{
for (int i=0; i<Tarjetas.size(); i++)
{
if (Tarjetas.get(i).obtener_numero_de_tarjeta() == numero_tarjeta)
Tarjetas.remove(i);


}


}


public void retirada_de_dinero_en_efectivo (int cantidad)
{
// Sacar dinero de la cuenta
if (cantidad > 0)
{
if (cantidad <= saldodecuenta)
{
saldodecuenta = saldodecuenta-cantidad;
System.out.println (" BANCAJA");
System.out.println("Le informa que el saldo de su cuenta " + saldodecuenta);
System.out.println(" Gracias.");
}
else if (cantidad > saldodecuenta)
{
System.out.println (" BANCAJA");
System.out.println("Le informa que la cantidad introducida no puede ser superior al saldo disponible " );
System.out.println(" Gracias.");
}
else if (cantidad < 0)
{
System.out.println (" BANCAJA");
System.out.println("Le informa que la cantidad introducida no puede ser una cantidad negativa " );
System.out.println(" Gracias.");
}
}
}


public void ingresar_dinero_en_efectivo(int cantidad)
{
// Ingresar dinero a la cuenta
if (cantidad>0)
{saldodecuenta = saldodecuenta+cantidad;
System.out.println (" BANCAJA");
System.out.println("Le informa que el saldo de su cuenta " + saldodecuenta);
System.out.println(" Gracias.");}
else
{ System.out.println (" BANCAJA");
System.out.println("Le informa que la cantidad introducida no puede ser una cantidad negativa " );
System.out.println(" Gracias.");}
}


public int consulta_número_de_cuenta()
{
// Consultar número de cuenta.
return númerodecuenta;
}}



CLASE TARJETA


private int numeroderegistro;
private int codigopin;
private int limitediario;
private Cuenta cuenta1;


public Tarjeta(int numerodetarjeta, int pin, int limitedetarjeta)
{
// Distintos construtores de la Tarjeta.
{if (numerodetarjeta>0)
this.numeroderegistro = numerodetarjeta;
else
System.out.println ( " Error el numero de la tarjeta debe ser mayor que 0 ");}
{if (pin>0)
this.codigopin = pin;
else
System.out.println ( " Error el codigo pin debe ser mayor que 0 ");}
{if (limitedetarjeta>0)
this.limitediario = limitedetarjeta;
else
System.out.println ( " Error el limite de la tarjeta debe ser mayor que 0 ");}

}


public int obtener_numero_de_tarjeta()
{
// Obtienes el numero de registro de la tarjeta.
return numeroderegistro;
}


public int obtener_pin()
{

return codigopin;
}


public int obtener_limite_diario()
{

return limitediario;
}


public void asociar_Cuenta(Cuenta cuenta1)
{
// Asociar una tarjeta a la cuenta
cuenta1 = new Cuenta (cuenta1.saldodecuenta,cuenta1.númerodecuenta);

}


public void cambio_codigo_pin(int nuevopin)
{
{
codigopin = nuevopin;}
}


public void cambio_limite_diario(int nuevolimitediario)
{

if (nuevolimitediario >0)
{limitediario = nuevolimitediario;}
else
{System.out.println (" ERROR");
System.out.println (" BANCAJA");
System.out.println("Le informa que la cantidad del nuevo límite diario tienen que ser mayor que 0 €.");
System.out.println(" Gracias.");}


}


public void aumentar_limite_diario(int cantidad )
{
// Aumenta el limite diario la cantidad que pongamos siempre que sea mayor que cero.
if (cantidad >0)
{{limitediario = limitediario + cantidad;}

{System.out.println (" BANCAJA ");
System.out.println(" El limite diario de su tarjeta es " + limitediario + "€" );
System.out.println(" Gracias.");}}
if (cantidad <0)
{System.out.println (" ERROR");
System.out.println (" BANCAJA");
System.out.println("Le informa que la cantidad que incrementa el límite diario tienen que ser mayor que 0 €.");
System.out.println(" Gracias.");}
}



public void disminuir_limite_diario(int cantidad)
{
// Disminuye el limite diario la cantidad que pongamos siempre que sea mayor que cero.



if (cantidad >0)
if (cantidad < limitediario)
{{limitediario = limitediario - cantidad;}
{System.out.println (" BANCAJA ");
System.out.println(" El limite diario de su tarjeta es " + limitediario + "€" );
System.out.println(" Gracias.");}}

if (cantidad <0)
{System.out.println (" ERROR");
System.out.println (" BANCAJA");
System.out.println("Le informa que la cantidad que disminuye el límite diario tienen que ser mayor que 0 €.");
System.out.println(" Gracias.");}

{ if (cantidad >= limitediario)
{System.out.println (" ERROR");
System.out.println (" BANCAJA");
System.out.println("Le informa que la cantidad no puede ser superior o igual al limite diario actual.");
System.out.println(" Gracias.");}}
}


public void sacar_dinero_en_efectivo(int cantidad)
{
// Sacar dinero de la cuenta.
//cuenta1.retirada_de_dinero_en_efectivo;
System.out.println (" BANCAJA ");
System.out.println(" El limite diario de su tarjeta es " + limitediario + "€" );
System.out.println(" Gracias.");
// else
{System.out.println (" ERROR");
System.out.println (" BANCAJA");
System.out.println("Le informa que la cantidad no puede ser superior a su saldo, ni puede tomar ningun valor negativo.");
System.out.println(" Gracias.");}
}





Pues voilá!!!!! No sé hacer bien lo que me dice de asociar una tarjeta a una cuenta! (el enunciado que he puesto)


Os agredecería mucho vuestra ayuda!!!!

Saludos!
  #2 (permalink)  
Antiguo 13/07/2011, 10:43
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Práctica java en Bluej

Cita:
lo único que hace falta es el constructor prácticamente.
¿Qué constructor?

Te están diciendo en el enunciado lo que tienes que hacer

Cita:
modificar la clase Tarjeta a˜nadiendo un nuevo atributo cuenta que debe permitir almacenar un objeto de la nueva clase Cuenta. Adem´as, se debe crear un nuevo m´etodo en la clase Tarjeta, que nos permita asociar una cuenta a una tarjet

Fíjate en esto
Cita:
public void asociar_Cuenta(Cuenta cuenta1)
{
// Asociar una tarjeta a la cuenta
cuenta1 = new Cuenta (cuenta1.saldodecuenta,cuenta1.númerodecuenta);

}
1. Dentro de tu clase tienes dos variables "cuenta1": la privada de la clase y la que usas como parámetro en asociar_Cuenta.

Cómo se llaman igual, java entiende que dentro de un método, tiene prioridad la que sólo existe en ese método. Si quieres usar la "cuenta1" privada tendrás que usar this.cuenta1

2. Si le pasas a asociar_Cuenta como parámetro una cuenta , ¿para qué creas un nuevo objeto Cuenta exactamente igual al del parámetro? Utiliza el que le pasas como parámetro.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 13/07/2011, 11:08
 
Fecha de Ingreso: noviembre-2007
Mensajes: 60
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Práctica java en Bluej

Hola,

lo único que tenía en el método asociar_cuenta, es lo que me dicen en el enunciado, que hay que hacer un método en la clase Tarjeta que asocie una cuenta a una tarjeta.

También me dan esto:

asociar_cuenta(cuenta) ---> una ayuda para hacerlo.

Lo que no sé son dos cosas (fundamentales):

1 - Si he de inicializar una cuenta en el constructor (incluso he pensado quitar en el constructor de cuenta el parámetro numeroCuenta y ponerlo a 0 directamente para en el constructor de tarjeta "asociar_cuenta" hacer esto:

cuenta1 = new Cuenta (numeroCuenta)


2 - No sé qué poner en el método "asociar_cuenta(Cuenta cuenta)".


Muchas gracias!
  #4 (permalink)  
Antiguo 13/07/2011, 11:13
 
Fecha de Ingreso: noviembre-2007
Mensajes: 60
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Práctica java en Bluej

En definitiva, que no sé cómo hacer lo que me dice esta parte del enunciado:

Por otro lado, vamos a completar dicha relaci´on almacenando en las tarjetas, la cuenta a la que est´an asociadas. Para ello
debemos modificar la clase Tarjeta a˜nadiendo un nuevo atributo cuenta que debe permitir almacenar un objeto de la nueva
clase Cuenta. Adem´as, se debe crear un nuevo m´etodo en la clase Tarjeta, que nos permita asociar una cuenta a una tarjeta.


Dándome esto otro como me lo dan:

(adjunto imagen)

http://losindecisos.com/luistecnoinf...%C3%ADtulo.png


Gracias

Última edición por luisravalgar; 13/07/2011 a las 11:30
  #5 (permalink)  
Antiguo 13/07/2011, 13:25
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Práctica java en Bluej

Quieres una cuenta que contenga una tarjeta que a su vez apunte a la cuenta que la contiene.

La opción sencilla es crearlas por separado (no tienes qeu tocar los constructores) y después usar los métodos asociar_Tarjeta y asociar_Cuenta para relacionarlas.

Tu método asociar_Cuenta debería ser

Cita:
public void asociar_Cuenta(Cuenta cuentaAsociada)
{
// Asociar una tarjeta a la cuenta
this.cuenta1 = cuentaAsociada;

}

Cita:
Lo que no sé son dos cosas (fundamentales):

1 - Si he de inicializar una cuenta en el constructor (incluso he pensado quitar en el constructor de cuenta el parámetro numeroCuenta y ponerlo a 0 directamente para en el constructor de tarjeta "asociar_cuenta" hacer esto:

cuenta1 = new Cuenta (numeroCuenta)


2 - No sé qué poner en el método "asociar_cuenta(Cuenta cuenta)".
Creas un objeto cuenta y otro tarjeta, tienes ya los constructores hechos, y después usas el método asociar_Tarjeta de la cuenta pasándole como parámetro la tarjeta, y después asociar_Cuenta de la tarjeta pasándole como parámetro la cuenta.

Más claro y sencillo no puedo ser (el código no te lo voy a poner), si no lo entiendes, a estudiar toca, porque esto es básico.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #6 (permalink)  
Antiguo 13/07/2011, 17:46
 
Fecha de Ingreso: noviembre-2007
Mensajes: 60
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Práctica java en Bluej

Gracias compa!

Entendido perfectamente! Te lo agrdezco!ya te contare q tal mañan,q hoy ya es muy tarde!

Saludos!

Etiquetas: clases
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:10.