Java - La pescadilla que se muerde la cola !! (problema con set)

 
Vista:

La pescadilla que se muerde la cola !! (problema con set)

Publicado por anonimo (5 intervenciones) el 27/12/2017 12:02:11
Hola a tod@s!, a ver si me podéis ayudar.

Estoy con una aplicación que vende cámaras fotográficas y el cliente al darse de alta recibe un bono de 3000€ para gastar(ojala existiera en la vida real eso..jejej) ,también busco que por cada compra el bono de 3000€ se decremente. Esto lo consigo cuando se vende una cámara,pero al volver a realizar la operación,el total vuelve a la cantidad original.
Esto pasa porque el set siempre tiene el mismo importe,por lo tanto,cuando se compra una cámara por primera
vez,se resta el importe de la cámara al bono,pero si se hace por segunda vez,el bono coge le valor del set y vuelve a realizar la misma operación.

Como podría solucionar este problema??

Os dejo código para que os hagáis mejor una idea.

METODO QUE REALIZA COMPRA DE LA CAMARA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public void devolvercamaras() {
    Camara a = new Camara(nombre, modelo,referencia, peso, precio);
    Scanner t = new Scanner(System.in);
    String opcion;
 
    System.out.println(a.nombre + " (IVA incluido) : " + a.Getprecioconiva() + "€\n");
    System.out.println("La quieres comparar..?, entonces presiona 1,pero si te lo quieres pensar escribe si");
    opcion = t.nextLine();
    if (opcion.equalsIgnoreCase("si")) {
        System.out.println("Deseas volver a menú ( pulsa si) o irte a tomar un café?(pulsa no)");
    }
    if (opcion.equalsIgnoreCase("1")) {
 
        System.out.println();
        System.out.println("Gracias por tu compra! \nDeseas hacer más compras ??");
        u.setSaldo(3000);
        double r = a.Getprecioconiva();
 
        u.setResto(r);
 
    }
 
    opcion = t.nextLine();
 
}



RESULTADO DE LA COMPRA EN MAIN

1
2
3
4
5
6
case"5":
 
    System.out.println("SALDO RESTANTE \n");
    System.out.println("Saldo actual : " + nuevo.getSaldo()+" €");
 
    break;



SET / GET

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public double getSaldo() {
    this.saldo = getResto() ; //get que devuelve el resto como saldo.
    return saldo;
}
 
public void setSaldo(double saldo) {
 
    this.saldo = saldo ;
}
 
public void setResto(double resto) {
    this.resto =this.saldo - resto;   //set que recoge el valor del precio de la cámara (a.Getprecioconiva() )
}
 
public double getResto() {
    return resto ;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

La pescadilla que se muerde la cola !! (problema con set)

Publicado por Alvaro de Gracia (4 intervenciones) el 10/01/2018 14:32:34
Hola buenas intentemos arreglar el ejercicio.

Tienes 3000 euros para gastar.
Las camaras por ejemplo valen 500.

Yo supomgo que tienes una clase llamada Camara que guarda el precio y el nombre. Y otra clase llamada Usuario que guardara el saldo.

Dentro de usuario tenemos el saldo con sus metodos getter y setter

1
2
3
4
5
6
7
8
public int getSaldo(){
       return saldo;
}
 
//restar al saldo x dinero
public void setRestarSaldo(int coste){
          this.saldo = this.saldo -coste;
}


Luego en el programa.principal con los.dos objetos

usuario.setRestarSaldo(camara.getPrecio());

Y asi irias restando al saldo cada vez que compras una camara

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar