Originariamente inviato da matthew80
Ciao andbin,

ci siamo accavallati nella risposta.
Allora quando ho scritto:
Le classi interne possono essere di due tipi:
Complete
Anonime
In realtà volevo scrivere
Le classi possono essere di due tipi:
Definizioni di classi complete
Definizioni di classi interne
In realtà però sarebbe meglio se dicessi che le classi possono essere esterne o interne.
Le classi interne si dividono in: (quella che segue è una lista semplificata fatta da me)
[list=1][*]Interne alla classe con nome[*]Interne alla classe senza nome (anonime)[*]Interne al metodo con nome[/list=1]
Comunque non ha senso parlare di "Definizioni di classi complete". Una classe non è completa o incompleta.

Le classi in Java sono o "top-level" oppure "nested". E nota bene che nested qui vuol dire semplicemente "dentro" un'altra classe. Perché poi c'è la suddivisione tra "nested static class" e "inner class" che sono 2 cose un po' diverse.

Originariamente inviato da matthew80
Le classi interne alla classe hanno accesso ai membri ed ai metodi della classe esterna senza bisogno di riferimenti.
Sì, quelle inner.

Originariamente inviato da matthew80
Le classi interne al metodo con nome hanno accesso ai membri ed ai metodi della classe esterna senza bisogno di riferimenti, ma non alle variabili del metodo in cui sono state definite, a meno che non siano final
Perfetto.

Originariamente inviato da matthew80
Ma ci sta sempre il dubbio che mi rode...alimentato ancor di più da una tua frase, e cioè:

Quindi: se quello che segue il new è un istanza della classe anonima ed un istanza di classe è un oggetto, allora quello che segue il new è un oggetto anonimo e non una classe anonima.
Eppure, come ho detto nel post precedente, un oggetto anonimo che, ad esempio, passo come argomento ad un metodo, non ha ovviamente una implementazione, mentre una classe interna anonima che, ad esempio, passo come argomento ad un metodo, ha un'implementazione.
Alt ... calma.
Si ha una classe anonima quando dopo il new Nome() segue il corpo { .... }. Questo è il punto chiave.

Originariamente inviato da matthew80
Alla fine, caro andbin la differenza tra classe interna anonima e oggetto anonimo che passo al metodo l'ho capita...ma non riesco a sopportare di dare nomi a casaccio alle cose! (come fanno spesso molti libri di informatica a seconda di chi li traduce).
Prendi in considerazione i nomi in inglese che ho detto all'inizio. Quelli sono corretti e largamente usati.

Originariamente inviato da matthew80
Quindi : E' giusto dire che si tratta di una classe interna o è un oggetto interno?
Continuo a dire che un oggetto non è interno/esterno o anonimo/non anonimo .... è un oggetto è basta. Un oggetto è una istanza di una classe. Punto.