• ,

Уровень 24: план уровня и доп. материалы

План уровня:
  • Интерфейсы-маркеры, глубокое клонирование.
  • Наследование внутренних классов
  • Локальные классы — классы внутри методов
  • Что происходит на самом деле (во что компилятор превращает классы)
  • Конструкторы/переменные анонимных inner классов

Курс Java

Что еще можно посмотреть на досуге:
Ответы на вопросы к собеседованию по теме уровня.

Внутренние классы подробно описаны в 10 главе Философии Java

Запомнить, чтобы ночью от зубов отскакивало:
Stack Overflow – это крупнейший сайт/форум, где программисты помогают программистам (и новичкам!).
Русский аналог — ХэшКод.



Нашли классную ссылку к материалу данной темы? Добавьте ее сюда в виде комментария.
Возможно, именно Ваша ссылка поможет другому человеку стать программистом и улучшить свою жизнь!

Вернуться к плану обучения

Вернуться к обучению java онлайн на JavaRush

17 комментариев

levka
Задание 15

double angel = Math.toRadians(direction);

Предлагаю все же написать правильно «angle», а то получается какой-то с крылашками :))
zeos
с крылашками
кто б говорил:)
mbllllb
Что-то я запутался. В седьмом уроке, в примере «Что сгенерировал компилятор» разве должно быть просто «class Anonymous2», а не «class Anonymous2 extends Car»?
ab_random
Единственное, что я нашел по форматированию в рунете
Форматирование чисел, дат и текста
Globus51
  • Globus51
  • 0
  • Комментарий отредактирован 2016-03-08 20:56:44 пользователем Globus51
В 5 лекции, там где второй пример кода — разве создаётся новый класс?
result.add(new Car()
— вроде бы опять же класс Car здесь, который уже объявлен, а не новый класс PoliceCar…
sergiiko
hashcode.ru уже редиректится на ru.stackoverflow.com
Byshevsky
  • Byshevsky
  • 0
  • Комментарий отредактирован 2016-03-31 16:01:52 пользователем Byshevsky
Я наверно отупел к 24му лвлу. Ничего практически не понял, а главное не понял зачем все ето нужно. Все задачи решил копипастой. Лучше стопяцот задач на многопоточность чем эти чертовы инеры и нестле с прочими анонимными классами.
generatorideas
Очень хочется сюда добавить Резюме из Философии Java и немного прояснить картину:
1. Интерфейсы и внутренние классы — весьма нетривиальные концепции, и во многих других объектно-ориентированных языках вы их не найдете.
2.Вместе они решают те задачи, которые C++ пытается решить с применением множественного наследования. Однако множественное наследование C++ создает массу проблем; по сравнению с ним интерфейсы и внутренние классы Java гораздо более доступны.
3.Решение об их использовании этих механизмов принимается на уровне проектирования (как и в случае с полиморфизмом).
Со временем вы научитесь сразу оценивать, где большую выгоду даст ин­терфейс, где внутренний класс, а где нужны обе возможности сразу. А пока достаточно хотя бы в общих чертах ознакомиться с их синтаксисом и семантикой.
Joysi
Хочу добавить сюда ссылку на цикл статей про вложенные/внутренние/локальные/анонимные классы, которую ранее опубликовал generatorideas
pr0java.blogspot.ru/2015/08/1.html
Уделив ей пару часов многое утрясается.
burduk
Да, хорошая вещь, спасибо
bezobid
Оригинал видео из этой лекции удалили с ютуба.
OctoTad
Вот <он>.
Shlepik
  • Shlepik
  • +1
  • Комментарий отредактирован 2016-05-30 16:00:42 пользователем Shlepik
Я правильно понимаю, что в примере кода на лекции 7 (Во что превращаются классы компилятором) в расшифровке «Что сгенерировал компилятор:» class Anonymous2{...} должно быть class Anonymous2 extends Car {...} для полноты картинки?
Nicson777
Насколько я понимаю, ему extends Car не нужен, т.к. в данном примере Anonymous2 является внутренним по отношению к классу Car:)
Shlepik
Нужен. внутренние классы не наследуют тот класс, в котором объявлены, а это значит, что пример не скомпилируется, так как при попытке добавить в список машин нового анонима2 он не сможет, так как тот не экстендит класс кар.
Nicson777
Согласен, что полноты в лекции 7 необходимо «extend Car» для Anonymous2.
stoptime
Застрял на первой задаче помогла статья
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.