# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
без видео 5 тестов |
|||
На этом уроке мы создадим в одном файле сразу три класса. Основной публичный класс Animals и два внутренних класса - Cat и Dog. У кошек и собак будет один метод "голос" - voice. Отчёт отправил: 13417. Chip Выполнено за 35 мин. [Показать отчёт] Научился: Решил немного подурачиться, написать ООП программу на языке Си и посмотреть что в итоге получится. Выполнил задание по уроку, создал "классы" Cat и Dog, добавил в каждый из них метод voice. Вывод программы на экран аналогичен по заданию. |
|||||
2 | CLASS - Каждой тваре по файлу |
без видео 2 теста |
|||
Размещать все классы в одном файле - не дальновидное решение. В этом случае только внутри этого класса можно ими воспользоваться. Более правильный подход - размещение каждого класса в отдельном файле. Тогда ими можно воспользоваться откуда угодно. Отчёт отправил: 13417. Chip Выполнено за 22 мин. [Показать отчёт] Научился: Повторил как создавать заголовочный файл, компилировать файлы. Выполнил задание по уроку, сначала скомпилировал файлы по отдельности, потом собрал исполняемый файл. Затем сразу из исходников собрал исполняемый файл. |
|||||
3 | CLASS - Кошкин дом |
без видео 2 теста |
|||
На этом уроке мы продемонстрируем, что мы в самом деле можем воспользоваться созданными на прошлом уроке классами, которые хранятся в отдельных файлах. Для этого мы создадим "Кошкин дом" для кошек и "Собачкин дом" для собак. Обратите внимание, что при компиляции кошкиного дома - кото-класс компилируется, а собако-класс нет. Отчёт отправил: 13417. Chip Выполнено за 21 мин. [Показать отчёт] Научился: Создал кошкин дом и собачкин дом. Кошкин дом "не зависит" от собак, а собачкин дом от котов. В моём случае нужно явно указывать компилятору какие файлы компилировать, поэтому феерическая магия по поиску файлов как в Java не сработала :) |
|||||
4 | CLASS - Пакеты для зверей |
без видео 3 теста |
|||
На этом уроке мы пропишем всех зверей в отдельную папку animal. Для подключения этих классов нужно будет указать полное имя пакета. Разместите все файлы по каталогам, откомпилируйте и запустите нашу программу. Важно! Название пакета должно совпадать с названием папки! Отчёт отправил: 13417. Chip Выполнено за 25 мин. [Показать отчёт] Научился: Создал папку animal, перенёс в неё зверей. В моём случае нет пакетов, всё гораздо примитивнее, нужно явно указывать файлы для компиляции и пути поиска. Процесс можно автоматизировать, но я пока что всё делаю вручную и следую пути курса :) |
|||||
5 | CLASS - Красная книга |
без видео 3 теста |
|||
Попробуйте сохранить созданную программу на флешку и запустить её оттуда. Для этого вам придётся скопировать не только файл с запускаемым классом - Animal.class, но также и папку Animal со всеми зверинными файлами-классами. Сделайте это! Отчёт отправил: 13417. Chip Выполнено за 1 час. 50 мин. [Показать отчёт] Научился: В этом уроке я научился создавать jar-архив, делать его запускаемым. Проверил работу программы, скопировав jar-файл в другую директорию. Аналогично выполнил решения для Си. Для создания архива использовал утилиту ar. Правда в этом случае архив не является самозапускаемым, поэтому файлы кота и собаки ушли в архив, а animal статически линкуется к этом архиву и содержит main-функцию, в результате чего получается исполняемое приложение, как в случае с Java. |
|||||
6 | CLASS - Зоопарк |
без видео |
|||
По аналогии с предыдущими уроками создайте несколько классов и разместите их в иерархии пакетов/папок. animal.Cat - животные - кошка animal.Dog - животные - собака fish.Carp - рыбы - карп fish.Ling - рыбы - щука bird.poultry.Chicken - домашние птицы - курица bird.poultry.Hen - домашние птицы - петух bird.prey.Eagle - хищные птицы - орёл bird.prey.Kite - хищные птицы - коршун * Обратите внимание, что имена пакетов принято записывать в единственном числе. Придумайте, как каждая из них говорит, организуйте зоопарк из всех животных, рыб и птиц, сархивируйте все классы в один файл, запустите его с флешки. Отчёт отправил: 13417. Chip Выполнено за 56 мин. [Показать отчёт] Научился: Научился вкладывать один пакет в другой, повторил как создавать jar-архивы. Выполнил аналогичные действия для Си. P.S. Трудно представить, как разговаривает орёл или щука, поэтому я для новых зверей просто вывел факт их "голоса" :) |
|||||
7 | CLASS - Звериное наследство |
без видео 3 теста |
|||
В этом уроке мы познакомимся с понятием ООП - "Наследование". Класс, от которого произошло наследование, называется базовым или родительским (англ. base class). Классы, которые произошли от базового, называются потомками, наследниками или производными классами (англ. derived class). Отчёт отправил: 13417. Chip Выполнено за 47 мин. [Показать отчёт] Научился: Написал Java-код, скомпилировал, запустил. Аналогично создал Си-код, в котором есть схожая реализация Java-кода. |
|||||
8 | CLASS - Три заветных слова |
3 теста |
|||
На этой видеолекции я предоставлю свой взгляд на ООП - что это такое, зачем это нужно и как этим пользоваться.
Отчёт отправил: 13417. Chip Выполнено за 1 час. 50 мин. [Показать отчёт] Научился: Повторил как наследовать классы в Java, создавать поля и методы в базовом классе и использовать их в наследнике. В методе voice кроме голоса добавил вывод клички животного. Аналогично создал Си-код со схожей функциональностью Java-кода. Наследование - это создание нового класса на базе другого класса. |
|||||
9 | CLASS - Общий голос |
без видео 3 теста |
|||
Научим зверей издавать звуки. Для этого в родительском классе Animal создадим функцию voice(). Но каждый зверь говорит своим голосом, как это реализовать? Создадим переменную String word - как говорит зверь. Останется в конструкторе каждой зверушки вписать - как именно она разговаривает. Как видете, звери умеют подовать голос, хотя эта функция в их классах не описана. Используется функция из родительского класса. Отчёт отправил: 13417. Chip Выполнено за 17 мин. [Показать отчёт] Научился: Повторил как создавать базовый и производный классы, инициализировать переменную в базовом классе из конструктора производного класса. |
|||||
10 | CLASS - Модификаторы доступа |
3 теста |
|||
На этом уроке мы поговорим о модификаторах доступа
Отчёт отправил: 13417. Chip Выполнено за 10 мин. [Показать отчёт] Научился: Познакомился с модификаторами доступа к полям и методам в языке Java. Если модификатор не указан, то считается, что модификатор доступа package. |
|||||
11 | CLASS - Подготовка к зачёту - Вспомним дроби |
без видео |
|||
Решить четыре примера с дробями. Решать на бумаге или в паинте, подробно расписать каждое действие. Ответы должны быть видны на картинке. В комментарии написать, какие поля и методы нужны для класса Fraction, который будет работать с дробями. Как работать с дробями: http://math-prosto.ru/?page=pages/drob/drob4.php Отчёт отправил: 13417. Chip Выполнено за 32 мин. [Показать отчёт] Научился: Вспомнил школьную математику, прорешал примеры по заданию. Для класса Fraction нужны два поля: числитель и знаменатель. Можно добавить третье поле - целое число дроби. Методы: суммирования, вычитания, умножения и деления дробей. |
|||||
12 | CLASS - Зачётная задача № 1 |
3 теста |
|||
Создать класс Fraction. Добавить в него два поля: nominator / denominator. Создать конструктор с двумя параметрами для инициализации дроби. Добавить методы для увеличения, уменьшения, домножения и деления исходной дроби на другую дробь. Создать две дроби, выполнить с ними все действия, вывести результат на экран (из основной программы). * Написать метод для упрощения дроби (поделить числитель и знаменатель на их НОД). Отчёт отправил: 13417. Chip Выполнено за 1 час. 47 мин. [Показать отчёт] Научился: Написал класс Fraction, создал в нём конструктор, методы сложения, вычитания, умножения и деления дробей. Добавил метод simplify для упрощения дроби. Проверил работу программы на примерах из предыдущего урока. Добавил свой пример, в котором проверяется работа метода simplify. Написал "аналогичную" программу на Си, проверил на тех же примерах. В программе на Си немного сжульничал, не хочу возиться с кучей там где без неё можно обойтись, поэтому новые дроби создаю на стеке поверх старых. В Java, насколько я понимаю, каждая новая дробь создаётся в куче, а перезаписывается только ссылка, добрый сборщик мусора сам приберёт недоступные объекты :) |
|||||
13 | CLASS - Зачётная задача № 2 |
1 тест |
|||
Создайте класс FractionRW, унаследуйте его от Fraction. Создайте конструктор, который принимает числитель и знаменатель, в нём необходимо вызывать конструктор родительского класса. Добавьте в него методы для ввода дроби с клавиатуры и для её вывода на экран. Создайте конструктор без параметров, который запрашивает ввод дроби с клавиатуры. Перепишите программу из прошлого урока с этим классом. Внимание! Метод super() должен вызываться в начале конструктора. Отчёт отправил: 13417. Chip Выполнено за 3 час. 5 мин. [Показать отчёт] Научился: Создал класс FractionRW на базе классе Fraction. Добавил в него методы read и write. Реализовал вывод дроби в три строчки. Написал программу, которая спрашивает пользователя ввести дроби для выполнения сложения, вычитания, умножения и деления. Аналогично, создал схожую программу на языке Си. Видеообзор: I0k-jFbviDk |
|||||
14 | CLASS - VIP - Крутятся пластинки |
без видео 1 тест |
|||
На этом уроке мы научимся воспроизводить музыкальные файлы на языке Java. Для начала необходимо выбрать и скачать пару музыкальных файлов в формате WAV. Это можно сделать на сайте: http://freewavesamples.com/ Музыкальные файлы необходимо разместить в корневой папке вашего проекта. Далее - написать программу для их воспроизведения и проверить её работу. Отчёт отправил: 13417. Chip Выполнено за 3 час. 23 мин. [Показать отчёт] Научился: В этом уроке я научился воспроизводить музыкальные файлы с помощью языка Java. Скачал 2 wav-файла с предложенного сайта, переписал программу с картинки к уроку, всё сразу заработало :) Потом приступил к программе на Си. В арсенале стандартной библиотеки нет возможности производить музыкальные файлы, в системных вызовах тоже нет. Остается выбор среди пользовательских библиотек. Раньше я использовал библиотеку PulseAudio, но она довольно-таки низкоуровневая. В уроке английские карточки я использовал libvlc для воспроизведения звука и видео. Сейчас решил попробовать что-то новенькое. Остановился на игровой библиотеке SDL2, там есть работа со звуком. Написал аналогичную программу на Си и для демонстрации вывода звука записал видео. Видеообзор: HZ6o-yhrjRQ |
|||||
15 | CLASS2 - Человекостудент |
без видео 1 тест |
|||
Начнём знакомство с наследованием. Чтобы узнать, кто кого наследует, задавайте себе вопросы: человек это студент? При положительных ответах используйте наследование - пишите extends Наберите программу, откомпилируйте и запустите. Отчёт отправил: 13417. Chip Выполнено за 13 мин. [Показать отчёт] Научился: Студент - это человек. Переписал программу с картинки к уроку, указал extends в объявлении класса Student. Перенёс классы внутрь класса Program, возникла ошибка чего-то там со статиками. Создал объект класса Program, добавил нестатичный метод doit, перенёс в него весь код. |
|||||
16 | CLASS2 - Европейская Прибалтика |
без видео 1 тест |
|||
Пропишите наследование среди указанных классов. Создайте экземпляр каждой страны. class Lithuania {} * Объявите один класс абстрактным. Отчёт отправил: 13417. Chip Выполнено за 26 мин. [Показать отчёт] Научился: На мой взгляд, нет смысла создавать классы Lithuania, Latvia, Estonia - это просто объекты, экземпляры класса Country. А классы Baltic и Europe - это обычные контейнеры, в которых хранится список объектов класса Country. Но по заданию требуется сделать нечто иное, использовать наследование, возможно даже среди всех классов :D Поэтому нашёл какое-то странное среднее решение, учитывая все задания со звёздочками. На первой картинке иерархия, на второй - факт того, что программа компилируется и запускается. |
|||||
17 | CLASS2 - Напиток Наследника |
без видео 1 тест |
|||
Проставьте правильно наследование в следующих классах. Создайте некоторые классы абстрактными. В остальных классах сделайте метод toString(), который вернёт название напитка. Создайте экземпляры популярных напитков и отобразите их на экране. Нарисуйте диаграму наследования классов. Отчёт отправил: 13417. Chip Выполнено за 34 мин. [Показать отчёт] Научился: Проставил наследование среди указанных классов, надеюсь, я правильно уловил идею Евгения Витольдовича. Нарисовал диаграмму на сайте draw.io. Я не нашел специального блока для абстрактного класса. Позже узнал, что для отображения абстрактного класса используется блок обычного класса, но имя класса пишется курсивом. Век живи - век учись :) |
|||||
18 | CLASS2 - Песец Членистоногий |
без видео |
|||
На этом уроке мы вспомним Биологию. Оказывается классы в языке Java можно называть по-русски. Создайте 39 классов, используя наследование по схеме. Определите, какие из них должны быть абстрактными. Имена классов ПИШИТЕ РУССКИМИ БУКВАМИ. Откройте дерево наследований классов, комбинация клавиш Ctrl-T. public class Animals Отчёт отправил: 13417. Chip Выполнено за 59 мин. [Показать отчёт] Научился: Попал на урок биологии, узнал, что лисицы оказывается чем-то связаны с собаками и волками. Создал иерархию наследования из 39 классов, практически все сделал абстрактными, кроме тех классов, которые указаны в разделе Вид. |
|||||
Итого: 18 видеоуроков |
59 мин. 35 тестов |
24 чел. | |||
Финалисты: Vladimir Fedotov, Новопашин Владимир, Michail Ostryj, Tekashnik, Vladimir Falejev, Алексей В., Александр Заскотченко, Jevgenij Kariagin, Иван Воронин, Erik Obuchovič, Сергей Соколов, Zulchumor Kurbonova, Станислав, Сергей, Максим Лапшинов, Andrej Petrunev, Володимир, Chip, Dmitry Sinitsin, Слава, Andrew, Anatoli, Yefim, Tom . |