Local class

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]