Sicuro! Anche se non fa nulla tranne cambiare l'ambito e forse dare una struttura al tuo codice.
Vale anche la pena notare la funzionalità di classe interna di Java. È una classe nidificata in grado di accedere alle variabili di istanza della classe che la include. Per esempio. se hai una classe, Outer, che contiene una classe interna, Inner, puoi accedere ai campi di Outer dalla classe interna con la sintassi Outer.this.banana (dato che Outer ha il campo banana). Per creare un'istanza di una classe interna bisogna prima avere un'istanza della classe esterna. Ciò significa anche che un oggetto della classe interiore non può sopravvivere alla sua classe esterna. Trovo che questa sia una caratteristica molto utile di Java. Per ottenere il comportamento di una normale classe nidificata in Java, dichiararla statica.
Altre lingue di cui sono a conoscenza che supportano classi annidate (non necessariamente classi interne) sono C ++, C # e python.