[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-core-chto-takoe-anonimnye-klassy-gde-oni-primenyayutsya":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":19,"progress":20,"seo":21},47,"chto-takoe-anonimnye-klassy-gde-oni-primenyayutsya",2,"java-core","Java Core","☕","Что такое анонимные классы? Где они применяются?","Это вложенный локальный класс без имени, который разрешено декларировать в любом месте обрамляющего класса, разрешающем размещение выражений. Создание экземпляра анонимного класса происходит одновременно с его объявлением. В зависимости от местоположения анонимный класс ведет себя как статический либо как нестатический вложенный класс - в нестатическом контексте появляется окружающий его экземпляр.\n\nАнонимные классы имеют несколько ограничений:\n\n+ Их использование разрешено только в одном месте программы - месте его создания;\n+ Применение возможно только в том случае, если после порождения экземпляра нет необходимости на него ссылаться;\n+ Реализует лишь методы своего интерфейса или суперкласса, т.е. не может объявлять каких-либо новых методов, так как для доступа к ним нет поименованного типа.\n\nАнонимные классы обычно применяются для:\n\n+ создания объекта функции (function object), например, реализация интерфейса `Comparator`;\n+ создания объекта процесса (process object), такого как экземпляры классов `Thread`, `Runnable` и подобных;\n+ в статическом методе генерации;\n+ инициализации открытого статического поля `final`, которое соответствует сложному перечислению типов, когда для каждого экземпляра в перечислении требуется отдельный подкласс.","","junior",[15,16,17,18],"core","вложенные-классы","анонимный-класс","anonymous-class",[],null,{"title":22,"description":23,"ogTitle":24,"ogDescription":25,"keywords":26,"schemaAnswer":31,"featuredSnippetReady":32},"Анонимные классы в Java — что это и где применяются — Gymterview","Анонимный класс — локальный вложенный класс без имени, создаётся одновременно с объявлением. Применяется для Comparator, Runnable и callback-ов.","Анонимные классы Java — когда использовать?","Локальный класс без имени. Создаётся и используется в одном месте. Применяется для Comparator, Runnable, обработчиков событий.",[27,28,29,30],"анонимный класс Java","anonymous class Java","анонимный класс пример","Comparator анонимный класс","Анонимный класс — вложенный локальный класс без имени, объявляемый в любом месте, где разрешены выражения. Экземпляр создаётся одновременно с объявлением. Ограничения: используется только в одном месте, не может объявлять новые методы (нет поименованного типа). Применяется для создания объектов функций (Comparator), объектов процессов (Runnable, Thread), в статических методах генерации и для инициализации сложных перечислений.",true]