undefined

Подготовка к собеседованию 3 уровень

Java Multithreading
3 уровень , 12 лекция
Доступна

— Привет, Амиго!

  Вопросы к собеседованиям
1 Какие бывают внутренние классы?
2 Во что компилируется анонимный внутренний класс?
3 Зачем использовать ключевое слово final при создании анонимных классов?
4 Как правильно создать объект внутреннего класса?
5 Как правильно создать объект вложенного класса?
6 Можно ли создавать статические методы/переменные во внутреннем классе?
7 Назовите три любых внутренних класса?
8 Как внутренние классы решают проблему множественного наследования в Java?
9 Чем отличаются анонимные классы, созданные на основе интерфейса и на основе класса?
10 Можно ли создать анонимный статический вложенный класс?

 

Комментарии (22)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Саня Уровень 26 Москва
25 июля 2021
Такс, вот нагуглил кое-что интересное: 3. Зачем использовать ключевое слово final при создании анонимных классов? Видимо, имеется в виду, что в анонимном классе можно использовать только effectively final переменные его внешнего класса. Такое требование сделано потому что в Java замыкания (closures) не реализованы как в функциональных языках, и на самом деле "захват" внешней переменной не происходит, а вместо этого копируется значение. Если переменная была не изменяемая, то такой подход будет работать в точности как как closure, поэтому и требование на final.
Igor Уровень 36 Минск Беларусь
15 мая 2021
Было бы здорово, если просто вместо списка вопросов были бы тесты.
Евгения Уровень 26 Минск
29 апреля 2021
ответы тут
Арман Уровень 37 Самара Россия
13 марта 2021
Игорь Кучер Уровень 38 Киев Украина Expert
1 августа 2020
Касательно шестого вопроса: во внутреннем нестатическом классе мы можем создать статическое финальное поле:

 public static final int x = 45;
и обратиться вне этого класса и даже пакета вот так:

int i = Outer.Innter.x;
Ice Tim Уровень 30 Москва
24 мая 2020
О внутренних классах, коротко, с примерами и ясно. http://www.quizful.net/post/inner-classes-java
Елена Уровень 35 Ростов-на-Дону
29 марта 2020
У меня какая-то путаница в голове: Анонимные классы при компиляции преобразуются во внутренние. Тогда мне не понятно, если анонимный класс образуется на основе интерфейса, то он будет преобразован во внутренний класс интерфейса? Интерфейс может содержать внутренний класс? А если анонимный класс образуется на основе другого класса и мы переопределяем метод, то мы же типа наследника делаем, а он при компиляции преобразуется во внутренний класс, получается, что внутренний класс может переопределять методы внешнего? Мне как-то логичнее понимать анонимные классы как "одноразовых" наследников, реализующих интерфейс или наследуемых от другого класса, а вот эта компиляция во внутренний меня путает. Please Help
katfald Уровень 27 Киев Украина
17 октября 2019
Ссылка на прекрасный обучающий материал по внутренним классам
Anonymous #874157 Уровень 30 Россия
29 ноября 2017
Анонимный класс является статическим(не статическим) в зависимости от того находится ли он в статическом (не статическом) блоке кода или нет.