Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Incremento único para numero da conta

public class Conta {

    double saldo;
    int agencia, numero = 0;
    String titular;

    public void novaConta (String nomeTitular ){
        numero += 1;
        saldo = 0;
        agencia = 0001;
        titular = nomeTitular;
    }

    public void deposito (double valor){

        if (valor > 0) {
            this.saldo += valor;
            System.out.println("Deposito de: " + valor + " realizado com sucesso.");
        } else
            System.out.println("Não é possivel depositar valor negativo. Tente novamente");
    }
    public boolean sacar (double valor){
        if (this.saldo >= valor){
            this.saldo -= valor;
            System.out.println("Saque de: " + valor + " realizado com sucesso.");
            return true;
        }else {
            System.out.println("Saldo insuficiente.");
            return false;
        }
    }
    public boolean tranfere (double valor, Conta destino){
        if (this.sacar(valor) == true) {
            destino.deposito(valor);
            return true;
        }else
            return false;
    }
}
//criando nova conta

    Conta conta_1 = new Conta();
       Conta conta_2 = new Conta();

       conta_1.novaConta("Fulano de Tal");
       conta_2.novaConta("Ciclano de tal");

//saída numero da conta

        System.out.println("Conta_1 nº: " + conta_1.numero + "\tSaldo: R$ " + conta_1.saldo);
        System.out.println("Conta_2 nº: " + conta_2.numero + "\tSaldo: R$ " + conta_2.saldo);

/* imprime:
Conta_1 nº: 1    Saldo: R$ 500.0
Conta_2 nº: 1    Saldo: R$ 350.0
*/

Olá , estou tentando fazer com que o número da conta seja um ID único e que ao se criar uma nova conta ele incremente 1, porem ao imprimir o número da conta , todas as contas estão como " conta numero 1" . Obrigado;

2 respostas
solução!

Oi Pedro, tudo bem?

A cada vez que damos um new na classe Conta, estamos criando uma nova instância dela, totalmente independente de outros objetos Conta. Portanto, a linha numero += 1 não está incrementando em cima de um valor anterior a cada a instância, mas sim declarando uma novo atributo numero que vale zero e somando 1.

A resposta para esse problema está um pouco à frente, na aula 6 do curso, onde seremos apresentados à propriedade static. Com ela será possível declarar atributos da classe, ou seja, atributos compartilhados na classe que mantém o seu valor mesmo após múltiplas instâncias.

Espero ter ajudado, se ficou qualquer dúvida é só avisar!

Bons estudos!!

Obrigado.