Форма, которую вы ошибочно назвали «частной» (где вы помещаете несколько классов верхнего уровня в один исходный файл), обычно считается плохой идеей.

кто-нибудь объяснить разницу между анонимными классами, вложенными классами и закрытыми классами в Java? Я хотел бы знать затраты времени выполнения, связанные с каждым из них, и подход компилятора к каждому, чтобы я мог получить представление о том, что лучше всего использовать, например. производительность (потенциал для оптимизации компилятора), использование памяти и общая приемлемость с другими Java-кодерами.

Под анонимными классами я подразумеваю те, которые объявлены встроенными в функцию таким странным Java-способом. Это часто встречается в примерах кода Swing, где вы пишете обработчик кнопки, встроенный в его объявление. Мне не очень нравятся анонимные классы, потому что вы получаете эти забавные файлы MyClass $ 1.class и чаще всего вам придется реорганизовывать позже, когда выясняется, что вы хотите сделать анонимный класс синглтоном или вам нужен дескриптор или что-то. Мне также просто не нравится, как вы прикрепляете обработчик в форме чего-то, что вы только что придумали во время вызова другой функции. Это просто заставляет меня чувствовать себя странно. :-)

Частные классы - это те, которые вы пишете внизу вашего файла, полностью за пределами объявления вашего открытого класса. Я предпочитаю частные классы только потому, что они имеют смысл в других языках, где нет сильных отношений 1: 1 между исходным файлом и классом. У меня нет такого странного чувства, и я знаю (или думаю, что знаю), как компилятор Java будет обрабатывать объявление этого класса.

Вложенные классы - это классы, написанные в волнистых попугайчиках вашего публичного класса. Я действительно не знаю, что означает вложенный класс по сравнению с двумя другими. :-)

Ответы на вопрос(3)

Ваш ответ на вопрос