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?
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.
privateJButton[]digitos;privatevoidcriaDigitos(){classDigitoListenerimplementsActionListener{intdigito;publicDigitoListener(intdigito){this.digito=digito;}publicvoidactionPerformed(ActionEvente){digitoPressionado(digito);}}digitos=newJButton[10];for(inti=0;i<digitos.length;i++){digitos[i]=newJButton(i+"");digitos[i].addActionListener(newDigitoListener(i));}privatevoiddigitoPressionado(intdigito){//faz o que deve ser feito}}
dsuruagy
OK, Leila.
Foi uma aplicação interessante.
Obrigado,
Daniel
Guilherme_Silveira
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.