# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 | Подготовка - Фрукты по списку |
2 теста |
|||
На этом уроке мы познакомимся с перечислением Enum. Фактически - это набор именных констант в одной упаковке. Перечисления в языке Java представляют из себя класс, который предоставляет много интересных возможностей. Преимущества использования перечислений: + Все константы собраны под одним именем. + Можно проверить наличие строчного значения в списке. + Можно в цикле перебрать все константы. + Оператор выбора switch на основе перечисления исключает ошибки. + Можно использовать как константную справочную базу данных. Самостоятельное задание: Создайте перечисление по дням недели - от MONDAY до SUNDAY. Введите с клавиатуры строку и проверьте, является ли она днём недели. Выведите название введённого дня недели на русском языке (switch-case). Выведите на экран список всех дней недели, кроме введённого. Отчёт отправил: 11589. Yefim Выполнено за 2 дня 15 час. 25 мин. [Показать отчёт] Научился: Создавать перечисления иобрабатвапть их с помошью операторов if, for, switch. Сложности: ------------------- |
|||||
2 | Подготовка - База фруктов |
1 тест |
|||
На этом уроке мы увидим интересные возможности перечислений enum в языке Java. Оказывается каждое слово - это не просто константное числовое значение, а целый экземпляр класса, в котором можно размещать справочную информацию. Получается целая константная база данных - справочник! Рекомендуемая литература: http://interviewinit.com/2014/04/java-enumerations-особенности/ 15 вопросов на собеседование относительно Enum, с ответами: http://info.javarush.ru/translation/2015/10/13/15-вопросов-для-собеседования-разработчиков-относительно-Enum-в-Джаве-с-ответами-.html Самостоятельное задание Отчёт отправил: 11589. Yefim Выполнено за 23 час. 14 мин. [Показать отчёт] Научился: Об интересных возможностях перечислений в Java. Узнал о новой версии перевода с английского apple как апельсин :). Сложности: ----------------- |
|||||
3 |
![]() |
2 теста |
|||
Мы начинаем создание Java-проекта на основе задачи про Деда Мороза, который дарил детям фрукты. При создании проекта вы сможете проникнуться духом Явы и прочуствовать во всей красе суть объектно-ориентированного подхода. Отчёт отправил: 11589. Yefim Выполнено за 23 час. 7 мин. [Показать отчёт] Научился: Повторил знакомое Сложности: --------------- |
|||||
4 | Яблоки на снегу |
2 теста |
|||
На этом уроке мы добавим в нашу программу перечисление - enum Fruit. Таким образом мы сможем изменять список допустимых фруктов, не меняя основную программу. Отчёт отправил: 11589. Yefim Выполнено за 3 час. 51 мин. [Показать отчёт] Научился: Добавлять в проект перечисление в виде отдельного файла. Сложности: --------------- |
|||||
5 | Фрукточтец |
2 теста |
|||
На этом уроке мы создадим класс FruitReader, в который перенесём алгоритм считывания начальных данных. Таким образом основная программа значительно упростится. Создайте текстовы файл "fruits.txt". На нескольких строчках напишите названия фруктов. Не забудьте в конце файла два раза нажать Enter. Разместите файл в корень проекта. Попробуйте открыть файл, указав полный путь с именем. Отчёт отправил: 11589. Yefim Выполнено за 1 час. 20 мин. [Показать отчёт] Научился: Создавать перегруженные функции Read() для считывания информации с фпйла и склавиатуры. Сложности: ------------------------- |
|||||
6 | Фрукты из строки |
2 теста |
|||
На этом уроке мы напишем метод, который сконвертирует строчку в объект BufferedReader. Таким образом мы сможем задачу по заполнению коллекции фруктов из строки делегировать уже созданному методу Read(). Теперь наш класс FruitReader стал чересчур универсальным, и это не очень хорошо. Мы его разделим на несколько составных частей, каждая часть будет отвечать за свой инструментарий. Отчёт отправил: 11589. Yefim Выполнено за 51 мин. [Показать отчёт] Научился: Создавать функцию ReadFromString() для чтения информации со строки. Сложности: ---------------------- |
|||||
7 | Волшебные конструкторы |
2 теста |
|||
На этом уроке мы рассмотрим несколько способов, как можно оформить содержимое наследников класса FruitReader. Какие будут преимущества и недостатки при их использовании из основной программы. В конечном итоге мы реализуем всё через волшебные конструкторы наследников. В основной программе алгоритм вычислений вынесем в отдельную функцию. Избавимся от статика и удивимся, как удобно теперь можно изменять тип источника данных - нужно всего лишь менять вызов конструктора. Отчёт отправил: 11589. Yefim Выполнено за 1 час. 45 мин. [Показать отчёт] Научился: Создавать Волшебные конструкторы. Код сейчас выглядит намного изящнее. Сложности: --------------------------- |
|||||
8 | Фруктовые комментарии |
2 теста |
|||
На этом уроке мы займёмся документированием созданных классов и методов. Мы будем использовать javadoc-стиль для автоматизации процесса создания документации. Отчёт отправил: 11589. Yefim Выполнено за 2 час. 13 мин. [Показать отчёт] Научился: Подготавливать проект для автоматического документирования. Очень полезный урок! Сложности: -------------- |
|||||
9 | Новые игрушки |
1 тест |
|||
На этом уроке мы попробуем расширить диапазон игрушек в мешке Деда Мороза. Сначала попробуем это сделать через обобщение, и окажемся в тупике. В конце урока мы найдём простое правильное решение, и выясним, почему стоит делать именно так. Совет: сначала посмотрите видео полностью, не внося изменений в код. Отчёт отправил: 11589. Yefim Выполнено за 34 мин. [Показать отчёт] Научился: Находить простое правильное решение. Сложности: То, что простое - согласен. На счет оценки правильности - время покажет. А пока содержимое перечисления не согласуется с его именем. |
|||||
10 | Какие ваши аргументы? |
2 теста |
|||
На этом уроке мы сделаем управление нашей программой через аргументы командной строки. В этом случае мы сможем легко изменять источники входных данных. Не нужно больше менять и компилировать исходный код. Отчёт отправил: 11589. Yefim Выполнено за 1 день 4 час. 28 мин. [Показать отчёт] Научился: Управлеть программой через аргументы командной строки. Сложности: ----------------------------------- |
|||||
11 | Рефакторинг аргументов |
1 тест |
|||
На этом уроке мы перенесём проверку аргументов командной строки в отдельную функцию. Попутно исправим некоторые недочёты и ошибки. Обоснуйте своими словами, почему мы решили не создавать отдельный класс для проверки аргументов? Отчёт отправил: 11589. Yefim Выполнено за 1 день 14 час. 2 мин. [Показать отчёт] Научился: Реализовывать проверку аргументов командной строки в отдельную функцию. Сложности: Оригинальный код не всегда корректно работает. Пришлось вносить свои изменения. |
|||||
12 | Пошаговый проход |
1 тест |
|||
На этом уроке мы вынесем проверку аргументов в отдельную функцию. После этого займёмся исправлением ошибки, которая возникает при отсутствии \n в конце строк. Чтобы проще было найти ошибку, и улучшить понимание струкутры программы в целом, мы выполним пошагово всю программу, посмотрим на содержимое переменных и доберёмся до сути той ошибки. Отчёт отправил: 11589. Yefim Выполнено за 2 дня 8 мин. [Показать отчёт] Научился: Научился частично использовать Debug. Сложности: Отличный урок. Тем не менее многие вопросы остались открытыми. Например, как после прохождения текущей точки останова дать команду вычислять до следкющей тоски останова? Как быстро найти место определения переменной или функции? |
|||||
13 | Массивная строка |
2 теста |
|||
На этом уроке мы создадим класс FruitReaderStringArray, в который вынесем алгоритм формирования строчки из массива. Урок длинный - очень много подробных объяснений - что мы делаем, почему мы делаем именно так. Отчёт отправил: 11589. Yefim Выполнено за 23 час. 55 мин. [Показать отчёт] Научился: Создавать класс FruitReaderStringArray для реализации алгоритмп по формированию строки из массива. Сложности: ------------ |
|||||
14 | Логические задачи |
1 тест |
|||
На этом уроке мы начнём наращивать функционал нашего проекта. Создадим класс Logic, в котором реализуем несколько методов. Каждый метод будет решать одну задачу по списку фруктов. Отчёт отправил: 11589. Yefim Выполнено за 2 дня 23 час. 27 мин. [Показать отчёт] Научился: Создавать класс Logic, где реализуются все методы по выполнению необходимых задач. Сложности: А что, если 2 и более фруктов дают тот же результат? |
|||||
15 | Размер множества |
2 теста |
|||
На этом уроке мы продолжим работу над классом Logic. Напишем два разных способа решения одной задачи: Сколько разных фруктов в мешке у Деда Мороза? Самостоятельное задание: сделать пошаговое выполнение новых функций. Отчёт отправил: 11589. Yefim Выполнено за 23 час. 1 мин. [Показать отчёт] Научился: Реализовывать решение одной задачи двумя разными способами с разлмчной сложностью алгоритмов. Сложности: --- |
|||||
16 | Список задач |
1 тест |
|||
На этом уроке мы составим список всех решаемых задач. У нас будет функция, которая запускает все задачи друг за другом. Также мы создадим ещё одно перечисление из всех возможных задач. Отчёт отправил: 11589. Yefim Выполнено за 1 час. 38 мин. [Показать отчёт] Научился: Реализовывать функцию getTask(), которая запускает все задачи друг за другом. Сложности: -------------------- |
|||||
17 | Форматы JSON и XML |
1 тест |
|||
На этом уроке мы переделаем класс Logic, чтобы он мог возвращать результаты расчётов в совершенно разных форматах - RAW, JSON, XML. Отчёт отправил: 11589. Yefim Выполнено за 2 час. 14 мин. [Показать отчёт] Научился: Реализоввыать методы getTaskRAW(), getTaskXML(), getTaskJSON(), возвращаюшие результаты расчётов в разных форматах - RAW, JSON, XML. Сложности: -------------- |
|||||
18 | Профессиональный Интерфейс |
2 теста |
|||
На этом уроке мы создадим интерфейс Convertable. Он поможет нам выделить из класса Logic задачи по конвертации. Отчёт отправил: 11589. Yefim Выполнено за 1 час. 11 мин. [Показать отчёт] Научился: Создавать интерфейс Convertable и реализовывать его в классе Logic в виде пустой функции. Сложности: Пока непонятно как это будет работать? |
|||||
19 | Коллекция HashMap |
2 теста |
|||
На этом уроке мы создадим в классе Logic метод, который запишет результаты вычислений в словарь - то есть в коллекцию HashMap Отчёт отправил: 11589. Yefim Выполнено за 21 час. 28 мин. [Показать отчёт] Научился: Познакомился со словарём HashMap. Интерфейс своими словами: указание классу реализовать у себя конкретный метод с именем, определенным в интерфейсе Сложности: ----- |
|||||
20 | Конвертабельные классы |
3 теста |
|||
На этом уроке мы сделаем три новых класса, каждый из которых реализует интерфейс Convertable. В каждом классе будет всего одна функция - Convert(), которая из словаря создаёт нужную структуру данных. Отчёт отправил: 11589. Yefim Выполнено за 1 день 21 мин. [Показать отчёт] Научился: Создавать три класса - ConvertXML, ConvertJSON, ConvertRAW, реализующих интерфейс Convertable. Сложности: -------------------- |
|||||
21 | Параметр Формата |
1 тест |
|||
На этом уроке мы обсудим возможность управления форматом вывода результата нашей программой через передачу параметра командной строки: java Program [-format json|xml|raw] Отчёт отправил: 11589. Yefim Выполнено за 20 час. 2 мин. [Показать отчёт] Научился: Управлять форматом вывода результата через передачу параметров командной строки: Сложности: ------------------------ |
|||||
22 | Параметрический Созидатель |
3 теста |
|||
На этом уроке мы так и не реализуем функцию parseArgsConvert(). Вместо этого мы организуем более общий подход к анализу аргументов. Разделим список всех аргументов на составные части по их назначению. И подготовим функцию create(), которая будет созидать каждую часть. Отчёт отправил: 11589. Yefim Выполнено за 10 час. 45 мин. [Показать отчёт] Научился: Разделть список всех аргументов на составные части по их назначению. Сложности: -------------------------- |
|||||
23 | Создатель |
2 теста |
|||
На этом уроке напишем функцию create.
Отчёт отправил: 11589. Yefim Выполнено за 5 час. 59 мин. [Показать отчёт] Научился: Писать функцию create. Для удобства я временно распечатал входные параvетры. Непонятно, Почему Е.В. решил, что программа работает неправильно? Сложности: ------------------ |
|||||
24 | Как шагает Дед Мороз |
1 тест |
|||
На этом уроке мы пошагово выполним всю программу, увидим, как параметры командной строки разделяются на несколько списков и поочерёдно обрабатываются. Отчёт отправил: 11589. Yefim Выполнено за 2 час. 40 мин. [Показать отчёт] Научился: Выполнять пошагово всю программу,чтобы увидеть, как параметры командной строки разделяются на несколько списков и поочерёдно обрабатываются. Сложности: -------------------------- |
|||||
25 | Конвертабельность |
2 теста |
|||
На этом уроке мы наконец-таки проанализируем параметры командной строки и создадим нужный экземпляр конверт. Отчёт отправил: 11589. Yefim Выполнено за 16 час. 36 мин. [Показать отчёт] Научился: На основе параметров строки создавать экземпляр конвертера. Сложности: ---------------- |
|||||
26 | Фабрика параметров |
1 тест |
|||
На этом уроке мы наконец-таки закончим создание основной части программы. Мы создадим класс ParamFabric, в который перенесём весь парсинг аргументов. Останется только оформить документацию - написать комментарии. Отчёт отправил: 11589. Yefim Выполнено за 9 час. 34 мин. [Показать отчёт] Научился: Создавать класс ParamFabric для парсинга аргументов. Сложности: -------------------- |
|||||
27 | Буфера в стрингах |
2 теста |
|||
На этом уроке мы пройдёмся по всему коду программы и сделаем небольшие улучшения кода. В основном мы будем заменять String на StringBuffer в тех местах, где происходит итеративное формирование строк. Отчёт отправил: 11589. Yefim Выполнено за 1 час. 49 мин. [Показать отчёт] Научился: Производить рефакторинг проекта. Сложности: Метод getConvert(String param) написан с ошибкой: он всегда возвращает пустой объект. На скринщоте показан мой вариант кода этого метода. |
|||||
28 | Документация Деда Мороза |
1 тест |
|||
На этом уроке мы опять пройдёмся по всему проекту и допишем документируемые комментарии. Затем создадим HTML-документацию используя утилиту JavaDoc. Отчёт отправил: 11589. Yefim Выполнено за 5 час. 10 мин. [Показать отчёт] Научился: Создавать HTML-документацию, используя утилиту JavaDoc. Сложности: Я надеялся, что на данном уроке будет обнаружена ошибка, о которой я писал в предыдущем отчете. К сожалению Игромистр проверил лишь опцию -help |
|||||
29 | Задедомороженный Архив |
1 тест |
|||
На этом уроке мы запакуем весь архив в один файл, используя утилиту jar. В таком виде удобно копировать и распространять программу - вместо огромного количества файлов - всего один архив. Отчёт отправил: 11589. Yefim Выполнено за 1 час. 35 мин. [Показать отчёт] Научился: Создавать архивный файл в сомандной строке. Сложности: Мне не пришлось иправлять ошибку, так как ее обнаружил "на месте преступления". |
|||||
30 | Комплименты Деду Морозу |
без видео 1 тест |
|||
Поздравляю с завершением Объектно-Ориентированного-Проекта на примере решения задачи про Деда Мороза. Пожалуйста, оставь отзыв об этом видеокурсе. Что тебе понравилось, что не понравилось, что можно было бы сделать лучше, в свободной новогодней форме. Отчёт отправил: 11589. Yefim Выполнено за 4 час. 5 мин. [Показать отчёт] Научился: Когда я первый раз взглянул на курс "ООФрукты", то подумал, что речь пойдет о традиционном изложении основ ООП, подобно тому, как это делается во многих руководствах. Однако, не первый год зная автора, Волосатова Евгения Витольдовича, я был уверен просто так дело не ограничится. На примере простейшего консольного приложения "Подарки Деда Мороза"с использованием параметров командной строки были продемонстрированы основные концепции ООП. Проект осуществлялся в среде разработки Eclipse и по ходу дела мы познакомились с некоторыми возможностями этого приложения. Решения некоторых задач осуществлялось различными спосоюбами, чтобы курсанты сами смогли убедиться в преимуществах ООП. Структура командной строки организована так, что позволяет управлять различными вариантами входной информации, а конечные результаты выводить в удобном для пользователя фомате. Последние уроки были посвящены вопросам документирования и способам его автоматической реализации. Новым для меня было и создание архиватора проекта и последующим запуском его в пустой папке. В заключении автор указывает на дальнейшие пути развития данного проекта и предлагает курсантам осуществить эти идеи самостоятельно. И теперь, когда курс уже позади я могу уверенно утверджать: такого курса, в хорошем смысле, об ООП я не встречал. Большое Спасибо Вам, Евгений Витольдович! |
|||||
Итого: 30 видеоуроков |
7 час. 04 мин. 49 тестов |
15 чел. | |||
Финалисты: Новопашин Владимир, Иван Воронин, Алексей В., Tekashnik, Сергей Соколов, Константин, Валерий Жданов, Станислав, Andrej Petrunev, Chip, Dmitry Sinitsin, Anatoli, Yefim, Ksandr, Tom . |