Similar presentations:
Java и ООП
1.
2.
В предыдущих сериях• Чтение и запись
• Closable
• Try with resources
3.
Глава 10.1Функциональщина
4.
Java и ООП• Долгое время, основной парадигмой Java было ООП
• Функциональное программирование – парадигма,
основные элементы которой появились в Java 8.
5.
Функция в матиматике• F(x, y) = 2x + 3y
6.
ПроблематикаСюда мы хотим
передать «функцию»
или код
7.
ПроблематикаВ 7й Java так нельзя
8.
Что делать• Окей, в ООП мы можем манипулировать объектам
• Давайте объявим интерфейс FilteringFunction, с
одним методом
• Этот метод будем переопределять, он и будет нашей
функцией.
9.
Что делать“Типа” функция
Фильтруем с помощью
«функции»
10.
«Наше решение»11.
Лямбдаboolean F(User user) = { user.age>18}
boolean F(User user) -> user.age>18
user -> user.age>18
Как правило, компилятор
может понять тип
переменной из контекста
12.
ЛямбдаКак правило, компилятор
может понять тип
переменной из контекста
13.
Что мы сделали?• Мы смогли передать функцию в метод в качестве
«параметра»
• Очевидно, точно так же мы можем вернуть из метода
объект типа FilteringFunction
• То есть функция становится полноценным объектом,
которую можно передать как параметр, или вернуть
как результат
• Такая функция называется функцией высшего порядка
14.
Чистая функция• Функция, которая всегда возвращает одно и то же
значение от одного и того же аргумента
• Функция с сайд эфектом – противоположность чистой
функции
15.
Вопросы и ответы16.
Функциональные интерфейсы Java17.
Функциональные интерфейсы Java18.
Вопросы и ответы19.
Стримы• Новая фича в Java 8
• Некие поток данных (чаще всего используется с
коллекциями)
• Позволяет использовать вышеупомянутые инетфейсы
20.
Стримы21.
Стримы: Collect, CollectorsМонада
22.
Операции со стримами• Нетерминальные – возвращают Stream
• Терминальные – возвращают не Stream (коллецию
или void, или int итд)
23.
Операции со стримамиНе терминальная
Терминальная
24.
Вопросы и ответы25.
Глава 11Сборщик проектов: Maven
26.
Maven• Часто нам нужно собирать проекты особым образом
• Кроме того, нужно подключать к проекту внешние
библиотеки
• Можно конечно скачивать jar вручную, но это не очень
удобно
• Maven решает проблемы внешних зависимостей и
сборки
• Основной файл Maven – pom.xml
27.
Maven28.
Maven• Clean – очищаем (удаляем) собранный проект
• Compile – компилируем проект
• Test – запускаем тесты
• Package - Создание .jar файла или war, ear в
зависимости от типа проекта
• Install - Копирование .jar (war , ear) в локальный
репозиторий
29.
Создадим простенький Maven проект30.
Создадим простенький Maven проект31.
Создадим простенький Maven проект• Давайте добавим известную библиотеку для работы с
строками, коллекциями итд от apache – commons, для
этого
1. Идем в глобальный репозиторий мавена через
интернет (https://mvnrepository.com/repos/central)
2. Ищем там нужную библиотеку по названию
3. Открываем ее описание, и находим, как добавить
ее в maven
32.
Создадим простенький Maven проект33.
Создадим простенький Maven проект34.
Создадим простенький Maven проект35.
Создаем Main – class и жмем installИногда еще
нужно сюда
нажать