Non ho capito la differenza tra classi interne e classi anonime

Alcune classi si definiscono in un metodo e altre fuori dal metodo ma sempre all'interno della classe.

Che cosa cambia?