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;
}
....
}
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;
}
}
}
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…
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;
}
}
}