A classe Banco deve ter um método adiciona , que recebe uma referência a Conta
como argumento e guarda essa conta.
Você deve inserir a Conta em uma posição da array que esteja livre. Existem várias maneiras para
você fazer isso: guardar um contador para indicar qual a próxima posição vazia ou procurar por uma
posição vazia toda vez. O que seria mais interessante?
Se quiser verificar qual a primeira posição vazia (nula) e adicionar nela, poderia ser feito algo como:
public void adiciona(Conta c) {
for(int i = 0; i < this.contas.length; i++){
// verificar se a posição está vazia
// adicionar no array
}
}
É importante reparar que o método adiciona não recebe titular, agencia, saldo, etc. Essa seria uma
maneira nem um pouco estruturada, muito menos orientada a objetos de se trabalhar. Você antes
cria uma Conta e já passa a referência dela, que dentro do objeto possui titular, saldo, etc.
Meu método está:
public void adiciona(Conta c) {
for (int i = 0; i < this.contas.length; i++) {
if (contas[i] == null) {
if (contas[i].equals(c) == true) {
System.out.println("Conta igual!");
} else {
contas[i] = c;
System.out.println("Conta salva!");
}
} else {
System.out.println("Espaço já alocado!");
}
}
}
Porém ele sempre retorna NullPointerException quando vai rodar o método.
public void adiciona(Conta c) {
for (int i = 0; i < this.contas.length; i++) {
if (contas[i] == null) { // se contas[i] estiver null, vai entrar no if
if (contas[i].equals(c) == true) { // contas[i] está null, não dá pra chamar o método equals nem nenhum método em um objeto null
System.out.println("Conta igual!");
} else {
contas[i] = c;
System.out.println("Conta salva!");
}
} else {
System.out.println("Espaço já alocado!");
}
}
}
Faça assim:
public void adiciona(Conta c) {
for (int i = 0; i < this.contas.length; i++) {
if (contas[i] == null) { // se contas[i] estiver null, vai entrar no if
if (c.equals(contas[i])) { // inverte o teste chamando o método equals a partir do objeto c
System.out.println("Conta igual!");
} else {
contas[i] = c;
System.out.println("Conta salva!");
}
} else {
System.out.println("Espaço já alocado!");
}
}
}