Dúvida na criação de um membro static

Boa tarde, galera.

Estou aprendendo programação Java há alguns meses.

Estou aressem na parte dos statics.

Gostaria de uma ajuda, de como fazer o seguinte exercício:

Supondo que o banco numera suas contas sequencialmente, preciso criar um atributo static ultimoNumero que guarde o nº da última conta que foi aberta, e também criar um construtor para a classe ContaBancaria que numera automaticamente a conta que está sendo instanciada por ele.

public class ContaBancaria{ private static double totalDepositos; //atributo de classe private int numero; private double saldo; public ContaBancaria(int n){ numero = n; saldo = 0; } public boolean retira(double valor){ if (saldo >= valor){ saldo -= valor; totalDepositos -= valor; return true; } else return false; } public void deposita(double valor){ saldo += valor; totalDepositos += valor; } .... }

Como eu poderia fazer o tal atributo static?

Grato desde já.

da mesma forma q vc criou totalDepositos

vc ja criou um construtor também que recebe o numero da conta

não entendi sua idéia… a cada instancia de conta bancária vc quer incrementar o campo ultimoNumero?

@Franco

O banco numera suas contas sequencialmente, acho que um contador resolveria, estou certo?

Então, preciso criar um atributo estático, para ‘salvar’ o número da última conta aberta.

Ex: Uma conta nova é criada(digamos que seja conta nº 8), o atributo estático ultimoNumero armazenará o nº da conta anterior, no caso, 7.

E após criar um construtor que numere automaticamente, cada conta que eu instanciar, por este contrutor.

edit:

O construtor deve ser outro, além deste que já fiz.

Desculpem-me pelo double post.

Mas tentei fazer do meu jeito, alguém pode verificar se está correto?

public class ContaBancaria{
    private static double totalDepositos; //atributo de classe
    private int numero;
    private double saldo;
    
    
    private static int cont = 0; //contador, para criação de contas com números sequenciais.
    private static int ultimoNumero; //atributo auxiliar para salvar o número da última conta aberta.
    

    
    
    public ContaBancaria(int n){
        numero = n; 
        saldo = 0;
            
    }
    
    
    public ContaBancaria(){
        cont++;
        numero = cont;
        saldo = 0;
               
    }
    
    
    public boolean retira(double valor){
        if (saldo >= valor){
            saldo -= valor;
            totalDepositos -= valor;
            return true;
        }
        else
        return false;
    }
    public void deposita(double valor){
        saldo += valor; totalDepositos += valor;
    }
    
    public static String getNumeroContas()
    { // método static para poder utilizar os atributos statics

        ultimoNumero = cont - 1; //Números sequenciar, logo, o número novo da conta -1, é o número anterior.
           
        if(ultimoNumero<=0){
        
        return "Primeira conta aberta";  //Para não retornar 0.
    }
        else {
        return "Número da última conta aberta: "+ultimoNumero;
    }
    
    
}
}
    

Ainda no aguardo :wink:

Qual dos 2 construtores vais usar na criação do teu novo Objeto ContaBancaria ???

porque ambos estão independentes, como presumo que chamarás sempre o que possui o argumento, podes muito bem ignorar o Construtor sem argumentos e passar a contagem do teu ultimoNumero pra lá… que por sinal não está sendo incrementado quando crias uma nova conta…

Abs[]

Vou usar o segundo contrutor.

O que cria automaticamente o número da conta.

Pois o atributo ultimoNumero só serve para retornar qual foi o número da última conta que foi criada.

Porque você criou cont (que é quem está ficando com o valor da última conta criada) e ultimoNumero ???

Qual está sendo a função de ultimoNumero ??

É.
Acabei de notar este erro.

Vou arrumar.

public class ContaBancaria{   
    private static double totalDepositos; //atributo de classe   
    private int numero;   
    private double saldo;   
       
       

    private static int ultimoNumero; //atributo auxiliar para salvar o número da última conta aberta.   
       
  
       
       
    public ContaBancaria(int n){   
        numero = n;   
        saldo = 0;   
               
    }   
       
       
    public ContaBancaria(){   
        ultimoNumero++;   
        numero = ultimoNumero;   
        saldo = 0;   
                 
    }   
       
       
    public boolean retira(double valor){   
        if (saldo >= valor){   
            saldo -= valor;   
            totalDepositos -= valor;   
            return true;   
        }   
        else   
        return false;   
    }   
    public void deposita(double valor){   
        saldo += valor; totalDepositos += valor;   
    }   
       
    public static String getNumeroContas()   
    { // método static para poder utilizar os atributos statics   
  
           
             
        if(ultimoNumero<=0){   
           
        return "Primeira conta aberta";  //Para não retornar 0.   
    }  

	
        else {   
        return "Número da última conta aberta: "+ultimoNumero -1;   
    }   
       
       
}   
}  

testaste a tua classe já cara ???

é a melhor forma de ver se deu certo… Debug…

[code]

public class ContaBancaria{
private static int ultimaConta = 0;
private int numero;

 public ContaBancaria(){
        ContaBancaria.ultimaConta++;
        numero = ContaBancaria.ultimaConta;
 }

} [/code]

ou seja as propria classe controla o numero da conta, a cada instancia umas noca conta!