¿Dónde poner clases internas? [cerrado]

A algunos les gustaría argumentar que este es un candidato para el tema menos importante de todos los tiempos. Sin embargo, el estilo de código es un tema muy importante para mí, y quiero asegurarme de que escribo el código de manera legible, para mí y para la mayoría de los desarrolladores.

Es por eso que me pregunto dónde están declarando sus clases internas.

Estoy siguiendo el siguiente esquema de ordenamiento de métodos, porque es bastante común:

public void foo() {
    usedByFoo();
}

private void usedByFoo() {
}

public void bar() {
}

Los ordeno de arriba a abajo, cada método tan cerca de donde se usa.

Ahora podría hacer lo mismo con las clases internas, así:

class Outer {
    private Inner inner;

    private class Inner {};

    public Outer() {
    }

    ...
}

Creo que este es el estilo más consistente para mí, pero a menudo también he visto a personas declarar todas las clases internas en la parte superior o inferior del archivo.

¿Qué estilo debo seguir, dada mi forma de ordenar los métodos? ¿Cuál es la forma más común de hacer esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta