JavaRush/Курсы/Java Multithreading/Полезные ссылки от профессора — 23

Полезные ссылки от профессора — 23

Открыта

— Привет, Амиго! Быстро же ты справился с новыми темами и задачами. А у меня для тебя сегодня — много хорошего чтива. Думаю, тебе будет полезно еще раз как следует разобраться с вложенными классами.

Вложенные внутренние классы

Зачем создавать одни классы внутри других? Например, чтобы выделить некую сущность, неразрывно связанную с другой сущностью, чтобы сохранить логику программы. Сложно? Ничего страшного. Рассмотрим все подробно и с примерами в этой статье.

Статические вложенные классы

Чем статические вложенные классы отличаются от других групп? Продолжаем рассматривать тему вложенных классов и разбираться с нюансами — в этой практической лекции.

Внутренние классы в локальном методе

Локальные классы — это подвид внутренних классов, но у них есть ряд особенностей и отличий. Давай посмотрим на него в действии.

Анонимные классы

Как и локальные классы, о которых мы говорили в прошлой лекции, анонимные — подвид внутренних классов. У них также есть несколько сходств и отличий между собой. Давай разберемся в этой подробной лекции, почему они, собственно, называются «анонимными», и посмотрим на практические примеры.

И еще: полезная ссылка. Все о final читаем в 7 главе книги "Философии Java" и в статье на нашем сайте.

Комментарии (40)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
alexandr kalashnikoff
Уровень 37
10 августа 2025, 17:58
Unable to make field private final byte[] java.lang.String.value accessible: module java.base does not "opens java.lang" to unnamed module @27716f4
Привет из 2025 - пример уже не актуален
Валихан
Уровень 33
Expert
2 декабря 2024, 06:03
Спасибо за лекции. Все доступно и понятно. Не то что на уровнях ранее.
Garik
Уровень 38
9 марта 2023, 11:07
у одного меня ссылка на "Философии Java" ведет на сайт здорового питания?
Лебовски
Уровень 51
12 апреля 2023, 15:07
у меня норм Попробуй так
DmitryK #853142832
Уровень 26
13 декабря 2022, 15:25
При сериализации вложенных классов есть особенность. В туториалах Oracle настоятельно не рекомендуется сериализовывать вложенные классы (включая локальные и анонимные). Дело в том, что при компиляции вложенных классов создаются "синтетические" конструкции (классы, методы, поля), которых нет в исходном коде. Состав этой "синтетики" зависит от компилятора. Поэтому, если вложенные классы сериализуются на одном компиляторе, а десериализуется на другом, то могут возникнуть проблемы совместимости. https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
Михаил
Уровень 32
25 октября 2022, 15:21
Тяжело и одновременно легко заходило. Экзамен не сдам, но понять почему код кажется абсурдным (несмотря, на то, что он работает) я смогу. Как я понял данный материал про внутренние классы имеет отношение к архитектуре. К тому как проектировать. Это больше Core, чем что бы то ни было еще.
Luka Biba
Уровень 36
13 июля 2022, 13:08
Всю материю высосали
Pig ManГлавная свинья в Свинарнике
2 декабря 2020, 09:26
То, что выписал для себя (без прочтения лекций будет непонятно): Виды вложенных классов: Все вложенные классы имеют полный доступ к внешнему классу, даже к private полям и методам. Не статические вариации имеют доступ как к статическим полям и методам, так и к нестатическим. Статическая вариация имеет доступ только к статическим Вложенные классы (статические) — такой класс не имеет в себе ссылки на внешний класс и создается не на его основе. Создание такого вложенного класса повышает инкапсуляцию и способствует более реалистичной абстракции. Может содержать статические переменные и методы Внутренние классы (не статические) — такой класс не может существовать без экземпляра внешнего класса и должен быть создан на его основе, который неявно передается в него при создании. Чтобы обратиться к полю или методу внешнего класса внутри внутреннего нужно писать ИмяКласса.this.поле. Не может содержать статические переменные и методы Локальные классы (не статические) — такой класс объявляется только в блоке кода. Чаще всего — внутри какого-то метода внешнего класса. Если версия java 7 или ниже, параметры метода должны быть с модификатором final. В 8 версии языка локальный класс имеет доступ не только к final переменным и параметрам, но и к effective-final. Effective-final называют переменную, значение которой не менялось после инициализации. Объект локального класса не может создаваться за пределами метода или блока, в котором его объявили. Локальные классы в статических методах внешнего класса могут ссылаться только на статические члены включающего класса. Не может содержать статические переменные и методы Анонимные классы (не статические) — такой класс объявляется на основе другого класса или интерфейса посредством указания в { } всех нужных нам методов и полей. Не может содержать статические переменные и методы
KesЧайник в Банк
4 апреля 2021, 05:37
Если продаешь свои записи в электронном виде - пиши)
Pig ManГлавная свинья в Свинарнике
4 апреля 2021, 10:28
Хочешь купить свинью в мешке? А если у меня там только одна запись толковая? Я бы и бесплатно выложил, но во-первых, я пишу все для себя и не хочу, чтобы кто-то это читал и оценивал качество. А во-вторых, запись выученного - хороший способ запомнить еще лучше. Толку-то от того, что человек прочет чужую статью, а потом возьмет к ней чужие записи?
KesЧайник в Банк
10 апреля 2021, 02:59
В инете мало именно краткого сухого материала. Ладно, я тебя услышал)
Pig ManГлавная свинья в Свинарнике
25 апреля 2021, 15:28
Выше был комментарий «ну и зачем тогда ты этот бред написал», но автор удалил уже Ты про какой бред? Краткое определение видов вложенных классов? Оставил для тех, кому после прочтения лекций это поможет еще раз быстро повторить материал и лучше его усвоить. А ты зачем свой бред тут оставил?
Сэм ФишерJava Developer в Seavus
11 мая 2021, 07:54
спасибо за информацию. хороший, обобщающий материал!
Pig ManГлавная свинья в Свинарнике
11 мая 2021, 14:48
Какое у тебя счастливое число?
Сэм ФишерJava Developer в Seavus
13 мая 2021, 07:48
у меня нет конкретного счастливого числа, а что?
Pig ManГлавная свинья в Свинарнике
13 мая 2021, 15:29
Это была отсылка на фильм. Я перепутал твое имя с Ником Фишером из одного фильма (думал, ты оттуда его взял)
Сэм ФишерJava Developer в Seavus
13 мая 2021, 16:02
не фильм. Splinter cell
Михаил Java Developer
26 ноября 2020, 19:52
На самом деле лекции очень интересные и понятные. Конечно, не до конца понятно где и какой именно класс нужно применять, но, думаю, даже работающие разработчики не все до конца правильно умеют пользоваться вложенными классами. Но к серии статей на JavaRush лично у меня никаких претензий. Спасибо! Для закрепления темы всегда можно посмотреть видосы на Ютубчике.
Максим
Уровень 27
5 июня 2020, 08:26
Больше лекций Богу лекций
9 февраля 2022, 17:04
Лекции для трона из лекций.
Kex
Уровень 38
Expert
6 мая 2020, 16:49
Геморойная тема - очень много правил в использовании, по началу очень осторожно нужно быть локальными и nested статиками.