Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Ayuda a un novato.

Hola, mi nombre es Jorge Bodega, y soy estudiante de primer año de Ingeniería Informática. Como tal, estoy estudiando el lenguaje de programación JAVA, pero nunca antes lo había hecho.

En consecuencia, tengo grandes problemas a la hora de realizar prácticas.Mi nota no es para que nadie me haga el trabajo, faltaría más, pero necesito ayuda en algunos métodos donde tengo errores y no se solucionarlos. Agradecería muchísimo que alguien me echase una mano.

Gracias de todas formas.


PD: Este es el código:

public abstract class Cuenta {

private int siguienteNumero = 0;
private int numero;
private double saldo;
private Cliente titular;
private Date fechaApertura;

public Cuenta (Cliente titular,double saldo)
throws ExcepcionClienteNoValido,ExcepcionImporteNoValido{

this.titular=titular;
this.saldo=saldo;
fechaApertura= new Date();
numero = siguienteNumero;
siguienteNumero++;

if (titular == null){
throw new ExcepcionClienteNoValido();
}
if (saldo <= 0){
throw new ExcepcionImporteNoValido();
}

if((titular == null)&&(saldo <= 0)){
throw new ExcepcionClienteNoValido();
}
}

public int getNumero (){
return numero;
}

public Cliente getTitular(){
return titular;
}

public double getSaldo(){
return saldo;
}

public void setSaldo( double importeNuevo){
this.saldo= importeNuevo;
}

public Date getFechaApertura(){
return fechaApertura;
}

public void ingresar(double importe)
throws ExcepcionImporteNoValido,ExcepcionOperacionNoPermitida, ExcepcionClienteNoValido{

if(importe <=0){
throw new ExcepcionImporteNoValido();}
else {
saldo = saldo + importe;
}
}

public void retirar (double importe)
throws ExcepcionImporteNoValido,ExcepcionSaldoInsuficiente, ExcepcionOperacionNoPermitida {

if(importe <= 0){
throw new ExcepcionImporteNoValido();}
else if(importe>saldo){
throw new ExcepcionSaldoInsuficiente();}
else {
saldo = saldo - importe;
}
}

public String toString(){

return getNumero() + ":" + getSaldo() + "(" + titular.getNif() + ")" + titular.getNombre();

}

public abstract double disponibilidad();

}

El principal problema es que al crear una cuenta nueva, se supone que se debería ir actualizando el número, pero no lo hace.

junio 22, 2014 | Registered Commenterjorgebodega

Cada vez que creas una nueva cuenta, siguienteNumero siempre se inicializa a cero.
Es un error pensar que las propiedades de una clase se "acumulan" sin más, con cada instancia que se crea.
El número de cuenta deberías crearlo fuera de esa clase, con una propiedad o método externo.

junio 22, 2014 | Registered Commenterchoces

Es que dentro de los requisitos de esa práctica, esta que solamente se pueden establecer unos métodos en concreto, y que la actualización del valor se debe hacer dentro de ese método.

Se que puede parecer un fallo tonto, pero es que soy completamente novato en esto de programar.

junio 23, 2014 | Unregistered CommenterJorge Bodega

Guenas.

En este caso define la variable
private int siguienteNumero = 0;
como
private static int siguienteNumero = 0;

Ahora conservara el valor

Salut

junio 23, 2014 | Unregistered CommenterPaposo

La culpa no es tuya, y aun menos por ser un principiante :)
Pero esa manera de diseñar es... ¡Sin comentarios! :)

Prueba a declarar esa propiedad así:

private static int siguienteNumero ;

junio 23, 2014 | Registered Commenterchoces

Cross posting! :D

junio 23, 2014 | Registered Commenterchoces

La leche... Como no he podido darme cuenta...
Muchísimas gracias chicos.
Y espero poder mejorar ese diseño con el tiempo(espero).

junio 23, 2014 | Unregistered CommenterJorge Bodega

Ahora si que hay algo que no entiendo.
En este codigo:
public void retirar(double importe) throws ExcepcionImporteNoValido, ExcepcionSaldoInsuficiente, ExcepcionOperacionNoPermitida{

if(!marcarVencido()){
throw new ExcepcionOperacionNoPermitida("Operacion no permitida");
}
else{
super.retirar(importe);
}

}

Me da un error el JUnit que dice:Expected exception ExcepcionOperacionNoPermitida.
¿Por que?

junio 23, 2014 | Unregistered CommenterJorge Bodega

Solucionado tambien... Y por que no me doy cuenta de estas cosas antes?

junio 23, 2014 | Unregistered CommenterJorge Bodega