Что такое полиморфизм?
Я всегда говорю : " Один интерфейс множество реализаций"
На практике это:
- Создаем интерфейс Movable
- Создаем класс Animal и реализовываем интерфейс
- Создаем два класса Cat и Bird и наследуемся от класса Animal, переопределяем в них метод move
- В main создаем обьекты классов Cat и Bird, но ссылку указываем на наш интерфейс. Эту возможность нам предоставляет полиморфизм.
- Далее вызываем полиморфный метод move у интерфейса , который связан через наследование с нашими классами.
Я всегда говорю : " Один интерфейс множество реализаций"
На практике это:
- Создаем интерфейс Movable
- Создаем класс Animal и реализовываем интерфейс
- Создаем два класса Cat и Bird и наследуемся от класса Animal, переопределяем в них метод move
- В main создаем обьекты классов Cat и Bird, но ссылку указываем на наш интерфейс. Эту возможность нам предоставляет полиморфизм.
- Далее вызываем полиморфный метод move у интерфейса , который связан через наследование с нашими классами.
👍2
Records in java
В java 16 добавили records.
Records представляют классы, которые предназначены для создания неизменяемых классов данных.
На картинке создал record BirdOne, автоматически создается поле name (final), конструктор, геттер и переопределены методы equals(), hashCode() и toString().
lombok теперь можно не использовать!
В java 16 добавили records.
Records представляют классы, которые предназначены для создания неизменяемых классов данных.
На картинке создал record BirdOne, автоматически создается поле name (final), конструктор, геттер и переопределены методы equals(), hashCode() и toString().
lombok теперь можно не использовать!
Зачем нужен Optional?
Optional контейнер для того, что бы избежать NullPointerException - это исключение, которое возникает в Java, когда программа пытается выполнить операцию с null ссылкой в качестве объекта.
Заварачиваем List c помощью статического метода ofNullable(), который принимает значение в качестве аргумента и возвращает Optional, содержащий это значение, если оно не равно null, или же пустой Optional, если значение равно null.
Затем мы можем использовать метод isEmpty для проверки, содержит ли Optional null. Если isEmpty() возвращает false, то мы можем вызвать метод get() для получения содержимого Optional.
Короче, если есть риск того, что будет npe, заварачивайте обьект в optional
Optional контейнер для того, что бы избежать NullPointerException - это исключение, которое возникает в Java, когда программа пытается выполнить операцию с null ссылкой в качестве объекта.
Заварачиваем List c помощью статического метода ofNullable(), который принимает значение в качестве аргумента и возвращает Optional, содержащий это значение, если оно не равно null, или же пустой Optional, если значение равно null.
Затем мы можем использовать метод isEmpty для проверки, содержит ли Optional null. Если isEmpty() возвращает false, то мы можем вызвать метод get() для получения содержимого Optional.
Короче, если есть риск того, что будет npe, заварачивайте обьект в optional
Задача с leetcode
Дана строка s, состоящая из слов и пробелов. Вернуть длину последнего слова в строке.
Решение в комментах
Дана строка s, состоящая из слов и пробелов. Вернуть длину последнего слова в строке.
Решение в комментах
Можно ли переопределить статический метод?
Anonymous Quiz
40%
Можно
46%
Нет
13%
Если только сделать перекрытие без @Override
Заполнить пустое место в методе action() так,
чтобы был корректно вызван метод
чтобы был корректно вызван метод
Anonymous Quiz
58%
super
14%
this
8%
One
20%
new One()
https://codeshare.io/WdqD9E
Написал пару тестов, остальные сами пишите, если не выйдет пишите в коменты помогу.
Это совершенно типичное задание для джуна на работе, реализация интерфейса, тесты.
Написал пару тестов, остальные сами пишите, если не выйдет пишите в коменты помогу.
Это совершенно типичное задание для джуна на работе, реализация интерфейса, тесты.
С Новым годом!!! 🎄
Желаю вам в новом году доучить джаву и найти работу.
Всем мир! ✌️
Желаю вам в новом году доучить джаву и найти работу.
Всем мир! ✌️
👍15❤4
Predicate
Интерфейс который предоставляет boolean метод test(). В основном используется для фильтрации данных из потока. Можно еще всякие проверки писать, типа есть соединения с бд, отправляет ли в кафку. Ну и запускать шедулер когда тру.
На картинке написал предикат, который проверяет содержится ли в стринге буква "c". Метод тест возвращает true, если элемент есть.
Задание:
Дан массив стрингов написать цепочку предикатов на поиск элементов содержащих "a", "c".
Решение в комментах
Интерфейс который предоставляет boolean метод test(). В основном используется для фильтрации данных из потока. Можно еще всякие проверки писать, типа есть соединения с бд, отправляет ли в кафку. Ну и запускать шедулер когда тру.
На картинке написал предикат, который проверяет содержится ли в стринге буква "c". Метод тест возвращает true, если элемент есть.
Задание:
Дан массив стрингов написать цепочку предикатов на поиск элементов содержащих "a", "c".
Решение в комментах
👍2
Function
Интерфейс принимает объект одного типа и возвращает другого.
На картинке мы считаем количество символов в стринг.
apply() как раз тот метод куда мы пихаем стринг и ожидаем что он нам выведет Integer, т.к в function мы определили s.length()
Задание:
Посчитать количество символов у массива стрингов, через stream.
Решение в комментах
Интерфейс принимает объект одного типа и возвращает другого.
На картинке мы считаем количество символов в стринг.
apply() как раз тот метод куда мы пихаем стринг и ожидаем что он нам выведет Integer, т.к в function мы определили s.length()
Задание:
Посчитать количество символов у массива стрингов, через stream.
Решение в комментах
Consumer
Интерфейс принимает объект и выполняет над ним операцию
На картинке мы прибавляем к инту двойку и выводим значение. Стоит заметить, что инт не изменяется и остается единицей, т.к в консьюмере создается копия.
Задача:
К массиву интов прибавить двойку и вывести это на экран. Сделать это через stream.
Решение сами знаете где)
Интерфейс принимает объект и выполняет над ним операцию
На картинке мы прибавляем к инту двойку и выводим значение. Стоит заметить, что инт не изменяется и остается единицей, т.к в консьюмере создается копия.
Задача:
К массиву интов прибавить двойку и вывести это на экран. Сделать это через stream.
Решение сами знаете где)
Supplier
Интерфейс в Java, который представляет функцию, которая не принимает никаких аргументов и возвращает результат. Имеет один единственный абстрактным метод get().
На картинке мы создаем массив интов и потом записываем его с помощью get.
Задание:
Создать стрим интов, сгенерировать в нем 100 рандомных чисел, далее вывести 20 из них в консоль.
Решение в комментах
Интерфейс в Java, который представляет функцию, которая не принимает никаких аргументов и возвращает результат. Имеет один единственный абстрактным метод get().
На картинке мы создаем массив интов и потом записываем его с помощью get.
Задание:
Создать стрим интов, сгенерировать в нем 100 рандомных чисел, далее вывести 20 из них в консоль.
Решение в комментах
Comparator
Интерфейс, который принимает в метод int compare(o1, o2) два значения и возвращает целое число, знак которого определяет правило сортировки. Возвращает 1, -1, 0
На картинке определим сравнения строк в обратном порядке, то есть если строка больше, то она будет выше. Если переставить местами a и b, будет обычная сортировка.
Задача:
String[] str = {"apple" ,"nike", "oppo", "lenovo", "puma", "mercedes"};
Создать стрим из этого массива, отcортировать по возрастанию символов в слове, если символов одинаковое количество, сортировать по алфавиту.
Решение в комментах
Интерфейс, который принимает в метод int compare(o1, o2) два значения и возвращает целое число, знак которого определяет правило сортировки. Возвращает 1, -1, 0
На картинке определим сравнения строк в обратном порядке, то есть если строка больше, то она будет выше. Если переставить местами a и b, будет обычная сортировка.
Задача:
String[] str = {"apple" ,"nike", "oppo", "lenovo", "puma", "mercedes"};
Создать стрим из этого массива, отcортировать по возрастанию символов в слове, если символов одинаковое количество, сортировать по алфавиту.
Решение в комментах
Задача с собеса
Даны три отсортированных массива, одинаковой длины. Найти и вывести одинаковые элементы
Решение в комментах
Даны три отсортированных массива, одинаковой длины. Найти и вывести одинаковые элементы
Решение в комментах
🔥4
Задача
Даны целые числа N и K, и последовательность из N целых чисел. Циклически сдвинуть все элементы последовательности на K элементов вправо.
Кто может решить?)
Даны целые числа N и K, и последовательность из N целых чисел. Циклически сдвинуть все элементы последовательности на K элементов вправо.
Кто может решить?)
Многопоточка
Что делает этот код?
1. Создаем переменную counter, которую будем увеличивать
2. Создаем метод increment, в котором увеличиваем переменную на 1
3. Создаем класс R, который имплементирует Runnable и переопределяем метод run.
4. в методе run вызываем increment() 1000 раз
5.Создаем в main два потока и пихаем туда наш класс. Стартуем потоки через start() и просим их дождаться главного потока main, через join()
6. Выводим результат
Что делает этот код?
1. Создаем переменную counter, которую будем увеличивать
2. Создаем метод increment, в котором увеличиваем переменную на 1
3. Создаем класс R, который имплементирует Runnable и переопределяем метод run.
4. в методе run вызываем increment() 1000 раз
5.Создаем в main два потока и пихаем туда наш класс. Стартуем потоки через start() и просим их дождаться главного потока main, через join()
6. Выводим результат