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.

Функциональные интерфейсы Java

17.

Функциональные интерфейсы Java

18.

Вопросы и ответы

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.

Maven

28.

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
Иногда еще
нужно сюда
нажать

36.

Создаем Main – class и жмем install

37.

Вопросы и ответы
English     Русский Правила