Como ler um objeto informado pelo user com um Scanner Java

6 respostas Resolvido
objetojavaprogramação
M

Boa noite ! Preciso de ajuda para resolver um problema no meu programa Java. Estou fazendo um programa de banco. Criei uma classe ‘Contas’ e em seguida criei dois objetos derivados dela (conta1,conta2). Esses objetos possuem os seguintes atributos: nome,numero,saldo e limite. Também criei o método tranferirPara(Contas destino, double valor); Como podem ver este método tem dois parâmetros: o primeiro que deve ser um objeto do tipo Contas, e o segundo deve ser o valor que será transferido(do tipo double). Eu quero transferir da conta1 para a conta2, para isso terei que passar meu objeto conta2 como parâmetro para meu método transferePara(); O problema é que eu não estou conseguindo uma forma de passar esse objeto(conta2) como parâmetro para o método. Eu tentei fazer um Scanner para de alguma forma ler o objeto e passálo como parâmetro, porém não consegui. Há alguma forma simples de fazer isso ? (sou iniciante em Java por isso procuro uma solução mais fácil);

Contas conta1 = new Contas();
Contas conta2 = new Contas();

/// ESTE É O MÉTODO
     String transferirPara(Contas destino, double valor){
          if(this.saldo < valor){
           return "SALDO INSUFICIENTE";
          }else{
           this.saldo -= valor;
           destino.saldo += valor;
           return "TRANSFERÊNCIA REALIZADA COM SUCESSO";
          }
        }

/// É NESSA PARTE QUE ESTOU COM PROBLEMA
case 4:
        System.out.println("SALDO ATUAL: " + conta1.saldo);  ///aqui é impresso o saldo do objeto conta1
        System.out.println("Para qual conta deseja transferir ?");
   //nessa parte o usuário deveria informar a conta para onde transferir
   //ou melhor, o objeto para onde transferir...
   //mas não consigo nenhuma forma de pegar o que ele digitou e passar como
   //primeiro parâmetro para o método abaixo, pois o primeiro parâmetro deve ser um objeto.
        conta1.transferirPara(objeto, valor);

//eu sei que uma alternativa seria eu apenas colocar o nome conta2 no primeiro //parâmetro, mas suponhamos que haverão vários outros //objetos(conta1,conta2,conta3,conta4,etc) ? nesse caso o usuário tem que informar qual o //objeto, mas como ler este objeto ? é possível utilizar um Scanner para ler o nome desse //objeto e depois passa-lo como parâmetro para o método ?`

6 Respostas

S

Quais os atributos da classe Conta?

A

Você pode usar Map,

static Map<String,Contas> contas=new HashMap<>();
         contas.put("Nome da conta1",conta1);
         contas.put("Nome da conta2",conta2);
        
        Conta c2= contas.get(scanner.next());
        conta1.transeferirPara(c2,valor);

Você pode armazenar em um Map, pra poder atribuir uma chave, o caso uma String que vc usa pra receber o valor de volta, existe outras formas com Collections ou com uma simples array, mas essa foi a forma mais eficiente que pensei.

M
String titular;
    int numero;
    double saldo;
    double limite;
S
Solucao aceita

Então, utilize o Scanner para ler estes atributos, aí você consegue pesquisa-los.

M

Vlw pela ajuda Alysson, mas ainda não cheguei na parte de Map…

M

Deu certo, obrigado !!!

Criado 2 de junho de 2020
Ultima resposta 3 de jun. de 2020
Respostas 6
Participantes 3