Escolar Documentos
Profissional Documentos
Cultura Documentos
Classes annimas tornam o cdigo mais conciso. Permite declarar e instanciar uma classe ao mesmo tempo.
So como as classes locais, a diferena que ela no possuem nome. Utilizam-se quando queremos utilizar
uma classe local uma nica vez.
package ClasseAnonima;
public class ClassAnonima {
interface AloMundo{
public void cumprimentar();
public void cumprimentarAlguem(String alguem);
}
public void DigaAlo() {
class CumprimentarPortugues implements AloMundo {
String nome = "Mundo";
public void cumprimentar() {
cumprimentarAlguem("Mundo");
}
public void cumprimentarAlguem(String alguem) {
nome = alguem;
System.out.println("Alo " + alguem);
}
}
AloMundo cumprimentarTuga = new CumprimentarPortugues();
AloMundo cumprimentarFrances = new AloMundo() {
String nome = "tout le monde";
public void cumprimentar() {
cumprimentarAlguem("tout le monde");
}
cumprimentarFrances.
Como classes locais, classes annimas tm acesso a variveis locais do escopo envolvente:
Uma classe annima tem acesso aos membros de sua classe delimitadora.
Uma classe annima no pode aceder variveis locais no seu mbito envolvente (mtodo) que no sejam
declaradas como final.
Como uma classe aninhada, uma declarao de um tipo (como uma varivel) em uma classe annima
sombreia quaisquer outras declaraes no mbito envolvente que tem o mesmo nome.
Classes annimas tambm tm as mesmas restries que as classes locais no que diz respeito aos
seus membros:
no se pode declarar inicializadores estticas ou interfaces membros em uma classe annima.
Uma classe annima pode ter membros estticos desde que sejam variveis constantes (final).