echenme una ayudadita es con una variable en java!!

briandis

Bovino maduro
#1
Que tal hermanos, miren ando entrando en esta onda de la programación, resulta que estaba haciendo un programa por mi cuenta de retiro, abono o ver saldo en java! pero lo que guardo en la variable saldo se pierde al momento del bucle, mmm como podría solucionar este problema???

Repito soy novato pero quiero aprender; acá les dejo mi código


////////////////////////////////////////////////////////
package banco1;
import java.util.Scanner;
class saldo{
public static int saldo;
public saldo(){
saldo+=saldo;
}
public void ver_saldo(){

System.out.println("Tu saldo disponible es: " +saldo);
}



public int abonar(int x){
saldo=saldo+x;
System.out.println("Tu saldo actualizado es: " +saldo);
return saldo;
}

public void retirar(int x){
if (saldo<x)
{
System.out.println("No cuentas con la cantidad necesaria");
}
else{
saldo=saldo-x;
System.out.println("Tu saldo actualizado es: " +saldo);
}
}
}
class switch1 extends saldo {

public void seleccion(int x){
switch(x){
case 1:

System.out.print("Cuanto abonas");
Scanner abono= new Scanner(System.in);
int abono2= abono.nextInt();
abonar(abono2);

break;

case 2:
System.out.print("Cuanto retiras");
Scanner retiro= new Scanner(System.in);
int retiro2= retiro.nextInt();
retirar(retiro2);
break;

case 3:
ver_saldo();
break;
case 4:
System.exit(0);
break;

}

}
}

public class Main {
public static void main(String[] args) {
// TODO code application logic here
int xz;
System.out.println("1.- Abonar");
System.out.println("2.- Retirar");
System.out.println("3.- Ver Saldo");
System.out.println("4.- Salir");
System.out.println("Selecciona una opcion");
do{
Scanner lector= new Scanner(System.in);
int lector2= lector.nextInt();
switch1 obj= new switch1();
obj.seleccion(lector2);
System.out.print("Si deseas realizar otra transaccion presiona 1 en caso contrario 0");
Scanner sn= new Scanner(System.in);
xz= sn.nextInt();
}while(xz==1);

}

}
 
#2
Lo que sucede es que cada vez que entras en el do-while generas una nueva instancia del objeto obj

Intenta con algo asi:

//Pon esta linea de codigo antes de entrar al do-while
switch1 obj= new switch1();
do{
Scanner lector= new Scanner(System.in);
int lector2= lector.nextInt();
//La linea de abajo debe ir antes
//switch1 obj= new switch1();
obj.seleccion(lector2);
System.out.print("Si deseas realizar otra transaccion presiona 1 en caso contrario 0");
Scanner sn= new Scanner(System.in);
xz= sn.nextInt();
}while(xz==1);

Espero te sirva
 
Arriba