Ich sags mal so: Wenn die Verwendung von inneren Klassen grundsätzlich schlechter Stil wäre, dann würde es sie wahrscheinlich nicht geben. Zumindest nicht in Java.
Und wie kommst du darauf, daß deren Verwendung schlechter Stil wäre?
Und es gibt durchaus Anwendungsfälle, wo innere Klassen sinnvoll sind. Wenn du innerhalb einer Klasse eine Aufgabe mit Threads lösen willst, und diese Threads ausschließlich in dieser Klasse sinnvoll zu gebrauchen sind, kann es durchaus sinnvoll sein die Threads als innere Klassen zu schreiben.
Denn einerseits ist mit der Threadklasse außerhalb der Klasse, in der sie benutzt wird, nichts anzufangen. Es ist (fast? Ich hüte mich ja gerne vor Absolutismen) nie schlechter Stil, die Sichtbarkeit von was auch immer maximal einzuschränken außer dort, wo Sichtbarkeit notwendig ist.
Im Beispiel der Threadklasse könntest du diese wenigstens package private deklarieren, dann ist sie nur innerhalb des Pakets sichtbar. Aber wozu müssen die anderen Klassen wissen können, daß es diese Klasse gibt?
Und andererseits besteht zwischen der Threadklasse und der Klasse, die sie verwendet, eine recht enge Bindung, nicht selten gehört der Code eigetlich zusammen. Nicht selten wird eine Aufgabe erstmal ohne Multithreading gelöst und wird später erst so optimiert, dann besteht die Threadklasse im Wesentlichen aus Code, der mal von der äußeren Klasse ausgeführt wurde.
Und da würde ich es als zweckmäßig ansehen, den Code beider Klassen in einer Datei zu haben.
Mal etwas ganz Grundsätzliches: Vermeide das Denken in Dogmen, denn das hat mit Denken nichts zu tun. Überlege dir lieber erst, was du erreichen willst und danach, ob dich etwas weiterbringt. Wenn jemand sagt, daß etwas grundsätzlich irgendwie sein müsse, der hat in der Regel grundsätzlich unrecht.
Viele Programmierer legen sehr viel Wert auf gut lesbaren und rasch verständlichen Programmcode. Nicht selten aus der (meist schmerzlichen) Erfahrung heraus, nach einem halben Jahr nicht mehr zu wissen was man damals eigentlich gemacht hat. Anderen ist das wiederum völlig egal.
Nun ist die Frage: Wer von beiden hat Recht?
Bei guten Leuten (oder sagen wir besser: die, die ich für gut halte) läuft so ein Streit recht schnell ins Leere weil einer von beiden sagt: Schön daß das für dich so funktioniert - ich habe aber andere Prioritäten, hier klappt das so nicht.