Olá!
Gostaria de que alguém me mostrasse uma aplicação para Local Classes, ou seja, classes definidas dentro de métodos. Estou estudando para certificação e aplicando os conhecimentos em uma pequena aplicação. Porém, não consigo imaginar o que posso fazer com estas classes locais.
Alguma idéia?
Obrigado.
Eu programo a dois anos com Java e nunca usei uma classe local. Para achar um exemplo, eu pensei para que eu uso classes anônimas, normalmente é para listeners ou para implementar a interface Runnable. Uma classe anônima tem algumas desvantagens, entre elas, a de não poder possuir um construtor.
Acho que um exemplo de uma aplicação simples seria uma calculadora. Uma calculadora tem dez botões (os dígitos de 0 a 9) que possuem a mesma função: acrescentar um dígito no display.
Abaixo parte do código da classe de uma calculadora.
[code]private JButton[] digitos;
private void criaDigitos() {
class DigitoListener implements ActionListener {
int digito;
public DigitoListener(int digito) {
this.digito = digito;
}
public void actionPerformed(ActionEvent e) {
digitoPressionado(digito);
}
}
digitos = new JButton[10];
for(int i = 0; i < digitos.length; i++) {
digitos[i] = new JButton(i+"");
digitos[i].addActionListener (new DigitoListener(i));
}
private void digitoPressionado (int digito) {
//faz o que deve ser feito
}
}
[/code]
OK, Leila.
Foi uma aplicação interessante.
Obrigado,
Daniel
O construtor de uma classe anonima pode ser gerado atraves de um bloco flutuante, nada demais, uma vez que voce soh vai chamar um construtor mesmo nao ha a necessidade de escrever mais de um construtor.
Eu uso bastante classes anonimas… seja para gerar classes temporarias de acesso a dados em fontes diferentes, listeners, pequenas threads (como contador de tempo para um processo), chegando a coisas nada a ve como classes que estendem Random para implementar diferentes algoritmos.
A ideia eh de criar uma classe que pode ser usada fora da classe mas voce nao deseja libera-la para extensao ou qq outra coisa.
Vale lembrar que classes anonimas sao extremamente importantes em java e os patterns de factories usam por MUITAS vezes esse tipo de classe para implementar metodos desejados.
Guilherme Silveira[/b]