4 / 4 / 7
Регистрация: 12.12.2014
Сообщений: 123
|
|
1 | |
Не могу найти нормальное объяснение, что такое замыкание(closure) в java.28.06.2017, 07:34. Показов 7175. Ответов 2
Метки нет (Все метки)
Не могу найти нормальное объяснение, что такое замыкание(closure) в java. Можете привести пример? Я так понял, это когда мы можем обратиться к какой нибудь переменной за пределами функции, в которой мы находимся
0
|
28.06.2017, 07:34 | |
Ответы с готовыми решениями:
2
Что такое замыкание?) Что такое транзитивное замыкание? Что такое логические операции (желательно объяснение на примере) Дайте простое и внятное объяснение, что такое интерфейс |
183 / 110 / 44
Регистрация: 03.07.2016
Сообщений: 496
|
|
28.06.2017, 08:38 | 2 |
0
|
164 / 170 / 139
Регистрация: 28.11.2016
Сообщений: 301
|
||||||
29.06.2017, 11:25 | 3 | |||||
Сообщение было отмечено wondermilk как решение
РешениеКликните здесь для просмотра всего текста
Смотрите код. Closure (замыкание) это когда внутренний класс или анонимный класс созданный на базе интерфейса лезет на тот же уровень из которого создан и пытается получить доступ к переменным на этом уровне. Образно говоря мы сидим на полу, рядом лежит книга, мы ее открываем и фоткаем. Смотрим на фото. Потом делаем в полу дыру, из дыры в полу вылезает рука с мобилой, фотографирует эту же книгу, затем заливает все скажем синим цветом и пересылает фото нам. Мы смотрим на оригинальное фото и залитое синим цветом. Синее фото результат работы замыкания. Замыкание это создание экземпляра класса, который потом возвращает нам те же переменные. CallBack функция это функция которая возвращает нам экземпляр внутреннего класса, который мы и сами могли создать. Особая жесть, когда мы вызываем callback метод, который создает экземпляр внутреннго класса, который (внутренний класс) в свою очередь берет поле внешнего класса (того в котором мы сидим) и возвращает нам это поле. То есть можно было просто вызвать поле var и посмотреть. Но можно вот так callbackk() >> new InnerClass(){} >> new InnerClass().getField() Замыкание как раз такого типа вещь. Мы создаем экземпляр внутреннего класса и он, этот экземпляр лезет к переменным в данном методе или выше в классе, включая кстати private использует их и возвращает их нам. В коде есть комментарии, в который расписано где и как получается замыкание.
1
|
29.06.2017, 11:25 | |
29.06.2017, 11:25 | |
Помогаю со студенческими работами здесь
3
Нормальное человеческое объяснение Литералам Оператор =. Не могу найти объяснение ситуации Жесткий диск Seagate Momentus 5400.3, короткое замыкание по линии 5 вольт, не могу найти причину Что такое |= в java? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |