Boa tarde a todos.
Sim, os atributos “adicional_1” e “adicional_2” são para as contas que contém mais de um titular. Agora se você quiser criar dez contas para um mesmo cliente, isto já é outra coisa, pois terá que cadastrar o mesmo 10 vezes com um número de conta diferente e como titular, para isto terá que invocar o método cadastrar dez vezes, ou você pode criar um método a parte, que com um loop “for” ou “while”, você insira o mesmo cliente, bastando tão somente fornecer ao método um parâmetro do tipo inteiro indicando o número de vezes que você quer criar as contas, e um outro parâmetro do tipo Cliente com as informações do cliente.
Quanto aos métodos estáticos, estes são métodos globais para serem utilizadas em toda a aplicação. Para serem acessados, estes métodos não precisam que a classe onde estão declarados seja instanciada, bastando tão somente fazer referência a eles com o nome da classe seguido de um ponto e logo depois o nome do método. Ex.
public class MinhaClasse {
public static void fazAlgo() {
System.out.println("Estou fazendo algo dentro de um método estático");
}
}
/* Invocando o método estático.
Assim compila */
MinhaClasse.fazAlgo()
// Assim não compila
MinhaClasse mc = new MinhaClasse();
mc.fazAlgo();
Como você pode perceber, métodos estáticos são membros apenas de classes, e não de instância.
Qual é a finalidade dos métodos estáticos :?:
Simples, como disse antes, estes métodos são globais a toda aplicação, não havendo a necessidade de instanciar a classe onde eles estão contido, em outras palavras, você terá acesso ao método em qualquer parte da aplicação dentro de qualquer classe, bastando tão somente fazer referência a eles com o nome da classe onde estão declarados.
Em outras linguagens de programação, tal como o Object Pascal do Delphi, estes métodos globais não precisam ser declarados no escopo de classe, bastando tão somente serem declarados na seção “Interface” de uma unit (Unidade). Já na linguagem Java, que é uma linguagem fortemente Orientada a Objetos, nada pode ser declarado fora do escopo de classe ou interface, portanto qualquer atributo ou método tem que ser declarado dentro do escopo de classes, incluindo-se os métodos globais.
Só toma cuidado ao criar métodos estáticos em demasia, isto porque quando a sua aplicação inicia, ela aloca memória para todos os métodos estáticos declarados em diversas classes de sua aplicação, isto pois é que faz com que as classes não precisem serem instanciadas, e cria um ponteiro de cada método estático fazendo referência ao nome da classe, se sua classe possuir mais de um método estático, ele cria um vetor de ponteiros para o nome daquela classe, por isso antes de criar métodos estáticos na sua aplicação pense 10 vezes antes de criá-lo, pois isto pode comprometer a velocidade de performance de sua aplicação.
Apenas recomendei que você criasse métodos estáticos no seu caso, porque você estaria acessando eles dentro do método “main” que também é estático, quer fazer um teste, cria um método não estático e tente acessar ele dentro do main, e vê se você vai conseguir.
Um abraço.