undefined

Бонусное задание | 12 лекция | 5 уровень

Java Core
5 уровень , 12 лекция
Открыта

— Здорово, боец!

— Здравия желаю, товарищ капитан!

— У меня для тебя шикарная новость. Вот тебе задания для закрепления полученных навыков. Выполняй их каждый день, и твои навыки будут расти с неимоверной скоростью. Они специально разработаны для выполнения их в Intellij IDEA.

undefined
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Осваивание статического блока
Cоздадим классы Plane и Helicopter, реализующие интерфейс CanFly, после чего в статическом методе reset класса Solution нужно считать с консоли параметр типа String и если он равен helicopter (plane), то статическому объекту CanFly result присвоить объект класса Helicopter (Plane). В статическом блоке инициализировать CanFly result вызвав метод reset.
undefined
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Template pattern
Создадим алгоритм работы баристы в классе DrinkMaker. Он будет выбирать подходящую чашку, класть ингредиенты и заливать жидкостью. Также создадим узкоспециализированные алгоритмы для чая и латте, унаследовав их от DrinkMaker.
undefined
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Факториал
На планете Линейный Хаос поиском факториала двузначных чисел на их планете принято занимать младенцев. Ну а мы подойдём по-взрослому, по-программистски, и напишем метод, вычисляющий факториал вплоть до введённого числа.
undefined
16
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Разные методы для разных типов
Итак, полиморфизм. Вы о нём ещё не забыли? Тогда решаем следующую задачку: считываем с консоли данные, пока не будет введено слово "exit". Для каждого значения, кроме "exit", вызываем метод print, какой именно принт — зависит от значения. Например, если значение содержит точку, то вызываем print для Double, а если это число от 0 до 128 — то для short.
undefined
4
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Тренировка мозга
Найдите логическую ошибку: утка (Duck) должна корректно реализовывать интерфейс CanMove. Исправьте ошибку так, чтобы получить правильный результат.
undefined
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
ООП. Перегрузка
Перегрузите метод info(Object s) в классе Tree дважды, чтобы получилось 3 метода info(Object s), info(Number s), info(String s). После этого разберитесь с методом info(Object s) и создайте функциональность новых методов по аналогии. Например, для метода info(Number s) результат может быть таким: «Дерево № 123 , метод Number, параметр Short.
undefined
16
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Закрепляем паттерн Singleton
Разберёмся с паттерном Singleton на примере светила и планет солнечной системы. Для начала займитесь поиском и найдите где-нибудь в интернете пример "ленивой" реализации Singleton и создайте по образу и подобию три Singleton-класса: Sun, Moon и Earth. Затем реализуйите в них интерфейс Planet. И проделайте ещё парочку операций.
undefined
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Перегрузка конструкторов
В этой задаче нам предстоит создать класс Solution и его потомка SubSolution, а для этого потомка — создать конструкторы и исправить их модификаторы доступа так, чтобы получить три конструктора с разными модификаторами (кроме private).
undefined
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Порядок загрузки переменных
Итак, полезная задачка на отладку. У вас есть код, в котором нужно разобраться: узнайте, что и в какой последовательности инициализируется. Для этого можно использовать отладчик в IntelliJ IDEA и его брейкпоинты. Затем исправьте порядок инициализации так, чтобы получить определённый результат.
undefined
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Файл в статическом блоке
Инициализируйте переменную Statics.FILE_NAME полным путем к файлу с данными, который содержит несколько строк. После этого в статическом блоке считайте из файла с именем Statics.FILE_NAME все строки, и добавьте их по отдельности в List lines.

— Те задания были для духов. Для дедушек я добавил бонусные задания повышенной сложности. Только для старослужащих.

undefined
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Дебаг, дебаг, и еще раз дебаг
Снова и снова мы ищем чужие ошибки и исправляем их... Такова наша программистская доля. Наша программа снова выводит что-то не то: закралась ошибка (всего одна!). Найти и обезвредить! Для этого воспользуйтесь дебаггером IntelliJ IDEA.
undefined
16
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Парсер реквестов
Считайте с консоли URL-ссылку. Затем выведите на экран через пробел список всех параметров (Параметры идут после ? и разделяются &, например, lvl=15). URL содержит минимум 1 параметр. Если присутствует параметр obj, то передайте его значение в нужный метод alert.
undefined
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
ООП. Hryvnia — тоже деньги
Исправьте класс Hryvnia так, чтоб избежать возникновения ошибки StackOverflowError. При этом, как ни парадоксально, Hryvnia должна быть наследницей класса Money и в этом классе должен быть реализован метод getAmount.
Комментарии (331)
Чтобы просмотреть все комментарии или оставить свой,
перейдите в полную версию
Ilia lenskii 16 уровень, Санкт-Петербург
3 февраля 2021
Пропускаю однотипные задания где надо "создать файл и класс", "считать с консоли", "создать 100500 перегрузок"... Надоела эта рутина. Сколько это будет продолжается.
Павел 19 уровень
20 января 2021
для факториала лучше использовать java.math.BigInteger; >============< в задаче для перегрузки методов print() удобна такая конструкция: if (num > 0 && num < Short.MAX_VALUE) print((short) num); >============< про синглтон https://habr.com/ru/post/129494/ >============<
Oleksii Naumenko 35 уровень, Харьков
14 января 2021
Парадоксально, но рубль - тоже деньги!
Егор Хазиев 17 уровень, Омск
9 января 2021
Задача "Факториалы" 0!=1 это как издевательство. Случайно и чудом наткнулся что это значит "факториал 0 = 1" причем с первого раза это условие можно даже пропустить и не заметить. Разрабы JavaRush пожалуйста пишите задания без "скрытых квестов" без которых не пройти.
Данил 20 уровень
9 января 2021
Для тех кто ничего не понимает, вернитесь к началу и повторите уже пройденный материал. Все встанет на свои места и будет легче. Сам так сделал, разобрался с последними сложными темами. Ссылка на лекции с 1 по 13 уровень - https://yadi.sk/d/I9VY5SSQh6dQHQ?w=1. (Лекции делал не сам, так же нашел в комментариях у хорошего человека. ник не помню, так что удачи всем)
Бельчонок Изи 22 уровень, Казань
27 декабря 2020
Существует так называемый try with resources, при котором мы создаем потоки, с которыми будем работать try (тут) { какой-то код} и потом можно эти потоки не закрывать. Вот как использовала в задаче "Файл в статическом блоке". static { try (BufferedReader reader = new BufferedReader(new FileReader (Statics.FILE_NAME))) { String line = null; ... и т.д. Если потоков несколько, пишем все в одной скобке, отделяя их ";"
Veygard 22 уровень, Москва
24 декабря 2020
В "Разные методы для разных типов" определять тип значения строки можно с помощью патернов и рег.выражений: Задаём паттерны для дабл чисел и интежер:

        final Pattern DOUBLE_PATTERN = Pattern.compile("-?([0-9]*)\\.([0-9]*)[d,f]?");
        final Pattern INTEGER_PATTERN = Pattern.compile("-?([0-9]*)");
Где, "-?" допускает наличие минуса("-"), но пропускает если его нет. "([0-9]*)" - проверяет что следующая часть знаки - цифры от 0 до 9. Звездочка показывает, что количество этих знаков может быть любое. "\\." - проверяет наличие точки, два обратных слеша вначале чтобы компилятор определил что второй слеш это служебный знак и не печатал его. "([0-9]*)" - опять любое количество цифр "[d,f]?" - проверяет если на конце в строке есть "d" или "f", то также принимает строчку. Это чтобы строчки вида 13.28d или -28.38f - тоже считались double. Их ведь можно перевести из строки в число без ошибок. Теперь можно использовать паттерн в проверке строки. "Если строка совпадает паттерну, то":

if (DOUBLE_PATTERN.matcher(inputStr).matches() ) {...действие}
где inputStr - это введенная строка (String). Дальше уже можно работать с уловиями Тоже самое сделать для паттерна Integer
Александр Казеев 27 уровень, Киев
13 декабря 2020
Видео о работе с дебагом и его возможностях в IntelliJ IDEA https://youtu.be/Z1BQsf0A4xY
Серега 19 уровень, Кривой Рог
27 ноября 2020
https://www.youtube.com/playlist?list=PLyApprAtr5yjywFgRkxhfGfesgYoIhU8U
illuminati 20 уровень, Санкт-Петербург
25 ноября 2020
"Факториал" - первая интересная задача на курсе.