Estou com dificuldade de inserir uma operação matematica, já fiz de tudo que veio na minha cabeça mas não saiu o que pode ser o problema…
Declarei uma variável valor1 como double, mas não consigo realizar valor1 = valor1 + opera,
Alguem poderia me ajudar?
elseif(perg==2){System.out.println("Quanto deseja depositar?");Scannerdeposito=newScanner(System.in);Doubleopera=deposito.nextDouble();System.out.println("Saldo Atual é:"+(valor1+opera));//Aqui deveria ser: valor1 = valor1 + opera System.out.println("Saldo Atual é:"+valor1);System.out.println("Deseja fazer mais alguma operação? 1-Não ou 2-Sim");Scannersaber=newScanner(System.in);intperg1=saber.nextInt();while(perg==2);Bancoc=newBanco();c.Saldo(nuncon);if(perg==1);System.out.println("Finalizado!!!");}
Colei apenas uma parte do codigo, se precisarem da outra me falem que eu coloco…
Obrigado!!!
quando você vai digitar o valor de double vc coloca ponto ( . ) ou virgula ( , ) ?
esse valor1 é propriedade de qual objeto?
precisamos do erro… e mais código…
E
eduardoamf
O valor1 fica sublinhado de vermelho com aquela lâmpada, escrito: the final field Iconta.valor1 cannot be assigned
E
eduardoamf
Segue o codigo completo!!
packagebanco;importjava.util.*;interfaceIconta{publicDoublevalor1=0.0;publicDoublelimite1=-50.0;publicDoublevalor2=0.0;publicDoublelimite2=-100.0;publicStringperg=null;publicIntegeropera=0;}publicclassBancoimplementsIconta{publicIntegernuncon;publicvoidSaldo(intnuncon){if(nuncon==1){//System.out.println("Saldo" +new Usuario().getInformacao(int nuncon));//System.out.println("Informação da conta Numero 1: \n Nome:" + nome1);Usuariou=newUsuario();u.getInformacao(nuncon);System.out.println("Saldo na conta :"+valor1);System.out.println("Deseja fazer alguma transação? 1 para sacar, 2 para depositar ou 3 para Finalizar");Scannerdesi=newScanner(System.in);intperg=desi.nextInt();if(perg==1){System.out.println("Quanto deseja sacar?");Scannersaque=newScanner(System.in);Doubleopera=saque.nextDouble();System.out.println("Saldo Atual é:"+(valor1-opera));System.out.println("Deseja fazer mais alguma operação? 1-Não ou 2-Sim");Scannersaber=newScanner(System.in);intperg1=saber.nextInt();while(perg==2);Bancoc=newBanco();c.Saldo(nuncon);if(perg==1);System.out.println("Finalizado!!!");}elseif(perg==2){System.out.println("Quanto deseja depositar?");Scannerdeposito=newScanner(System.in);Doubleopera=deposito.nextDouble();System.out.println("Saldo Atual é:"+(valor1+opera));valor1=valor1+opera;//System.out.println("Saldo Atual é:" + valor1);System.out.println("Deseja fazer mais alguma operação? 1-Não ou 2-Sim");Scannersaber=newScanner(System.in);intperg1=saber.nextInt();while(perg==2);Bancoc=newBanco();c.Saldo(nuncon);if(perg==1);System.out.println("Finalizado!!!");}elseif(perg==3){System.out.println("Finalizado!!!");}}elseif(nuncon==2){Usuariou=newUsuario();u.getInformacao(nuncon);System.out.println("Saldo na conta :"+valor2);System.out.println("Deseja fazer alguma transação? 1 para sacar, 2 para depositar ou 3 para Finalizar");Scannerdesi=newScanner(System.in);intperg=desi.nextInt();if(perg==1){System.out.println("Quanto deseja sacar?");Scannersaque=newScanner(System.in);Doubleopera=saque.nextDouble();System.out.println("Saldo Atual é:"+(valor2-opera));System.out.println("Deseja fazer mais alguma operação? 1-Não ou 2-Sim");Scannersaber=newScanner(System.in);intperg2=saber.nextInt();while(perg==2);Bancoc=newBanco();c.Saldo(nuncon);if(perg==1);System.out.println("Finalizado!!!");}elseif(perg==2){System.out.println("Quanto deseja depositar?");Scannerdeposito=newScanner(System.in);Doubleopera=deposito.nextDouble();System.out.println("Saldo Atual é:"+(valor2+opera));System.out.println("Deseja fazer mais alguma operação? 1-Não ou 2-Sim");Scannersaber=newScanner(System.in);intperg1=saber.nextInt();while(perg==2);Bancoc=newBanco();c.Saldo(nuncon);if(perg==1);System.out.println("Finalizado!!!");}elseif(perg==3){System.out.println("Finalizado!!!");}}}publicstaticvoidmain(String[]args){System.out.println("Entre com o numero de sua conta:");Scannerentrada=newScanner(System.in);intnuncon=entrada.nextInt();Bancoc=newBanco();c.Saldo(nuncon);}}
F
felipe.sales
Então a sua variável valor1 deve estar com o modificador ‘final’.
Variáveis com o final não podem ser modificadas.
F
felipe.sales
Eu havia respondido ao tópico antes de vc colocar o código.
A sua variável valor1 está dentro da interface IConta, logo variáveis declaradas dentro de interfaces são implicitamente contantes, por isso houve erro na hora de vc atribuir um novo valor a variável valor1.
E
eduardoamf
felipe.sales:
Eu havia respondido ao tópico antes de vc colocar o código.
A sua variável valor1 está dentro da interface IConta, logo variáveis declaradas dentro de interfaces são implicitamente contantes, por isso houve erro na hora de vc atribuir um novo valor a variável valor1.
entendi, o unico jeito seria eu remover essa variavel de dentro da interface?
F
felipe.sales
Isso, tirar da interface e colocar dentro de uma classe.
Por exemplo, no seu código vc poderia ter uma classe abstrata chamada Conta com as variáveis de instância.
Dai vc pode criar outros de classes de conta que herdem da classe abstrata Conta, como ContaCorrente, ContaPoupanca, etc.
douglaskd
além desse erro eu via algumas coisas estranhas:
while (perg == 2); <-- " ; " sem {}
você usa assim apenas se for usar do…while…eu não achei nenhum “do”
o if ta fechado tambem…
if(perg == 1); <-- " ; " o código compila mais ele não faz nada.
tem que tirar os ; ; ; ;, e abrir chaves { } onde precisar
douglaskd
você pode até ter uma interface, mais o que o felipe.sales disse é aquilo mesmo…
se for usar interface coloca alguns métodos comuns:
por exemplo depositar, sacar, transferir.
seria bem interessante.
E
eduardoamf
Muito Obrigado Pelas dicas e Pela ajuda!!!
vou tentar fazer dessa forma que vocês me orientaram…