# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
без видео 5 тестов |
|||
На этом уроке мы создадим в одном файле сразу три класса. Основной публичный класс Animals и два внутренних класса - Cat и Dog. У кошек и собак будет один метод "голос" - voice. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 34 мин. [Показать отчёт] Научился: В рамках одного файла допустимо создавать один, и более одного класс(ов) Родительский класс имеет доступ к дочерним классам и методам внутри них Каждый класс при компиляции создаёт свой собственный файл байт-кода с расширением .class Сложности: A family of mice were surprised by a big cat. Father Mouse jumped and said, "Bow-wow!" The cat run away. "What was that, Father?" asked Baby Mouse. "Well, son, that's why it's important to learn a second language." |
|||||
2 | CLASS - Каждой тваре по файлу |
без видео 2 теста |
|||
Размещать все классы в одном файле - не дальновидное решение. В этом случае только внутри этого класса можно ими воспользоваться. Более правильный подход - размещение каждого класса в отдельном файле. Тогда ими можно воспользоваться откуда угодно. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 53 мин. [Показать отчёт] Научился: Напутал с голосовыми сообщениями, возвращаемыми животинками, первый раз откомпилировал с мурявкающими и кисами и собакенами. Исправил, чтобы собака говорила собачьим голосом, сохранил, откомпилировал Dog.java Предполагал, что после этого надо перекомпилировать и класс с точкой входа (Animals.java - > Animal.class) но перед этим попробовал запустить неперекомпилированный Animal.class Оказалось, обновление кода подхватилось и без перекомпиляции Animal.java Достаточно было ребилда Dog.java dir /b *.class - содержимое директории с фильтром на расширение файлов |
|||||
3 | CLASS - Кошкин дом |
без видео 2 теста |
|||
На этом уроке мы продемонстрируем, что мы в самом деле можем воспользоваться созданными на прошлом уроке классами, которые хранятся в отдельных файлах. Для этого мы создадим "Кошкин дом" для кошек и "Собачкин дом" для собак. Обратите внимание, что при компиляции кошкиного дома - кото-класс компилируется, а собако-класс нет. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 25 мин. [Показать отчёт] Научился: при компиляции класса, дополнительно компилируются сторонние классы, упомянутые в коде компилируемого файла Инструкции по вызову действия имеют вид ИДЕНТИФИКАТОР_ЭКЗЕМПЛЯРА.(ТОЧКА) ИМЯ_МЕТОДА(КРУГЛЫЕ СКОБКИ);точка с запятой в конце кратко: bobik.voice (); |
|||||
4 | CLASS - Пакеты для зверей |
без видео 3 теста |
|||
На этом уроке мы пропишем всех зверей в отдельную папку animal. Для подключения этих классов нужно будет указать полное имя пакета. Разместите все файлы по каталогам, откомпилируйте и запустите нашу программу. Важно! Название пакета должно совпадать с названием папки! Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 33 мин. [Показать отчёт] Научился: библиотека является набором файлов с классами Директива package должна находиться в первой незакоментированной строке файла. Пакет(package) == библиотечный модуль, содержит группу классов, объединённых в одном пространстве имён Оператор import позволяет обращаться к классам из пакета указав имя пакета и, через точку, имя класса который надо подключить. вот так: import животинка.Кот_обормот import животинка.Пёс_барбос Код ниже таких "импортов (подключений классов)" может смело работать с содержимым пса и кота, они смогут мяучить и лаять по Вашей команде |
|||||
5 | CLASS - Красная книга |
без видео 3 теста |
|||
Попробуйте сохранить созданную программу на флешку и запустить её оттуда. Для этого вам придётся скопировать не только файл с запускаемым классом - Animal.class, но также и папку Animal со всеми зверинными файлами-классами. Сделайте это! Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 47 мин. [Показать отчёт] Научился: jar архив содержит в себе те же классы и пакеты нашего проекта, лишь оформленные в единый файл архива. Открывается архиватором для просмотра без проблем. Видел это в кнопочных мобильниках, закачивая игры в былые годы. JAR-файл == это Java-архив (Java ARchive). ZIP-архив с кодом на языке Java. Если JAR исполняемый, он содержит файл MANIFEST.MF в каталоге META-INF, где указан главный класс программы (метод main) cfe - create file executable |
|||||
6 | CLASS - Зоопарк |
без видео |
|||
По аналогии с предыдущими уроками создайте несколько классов и разместите их в иерархии пакетов/папок. animal.Cat - животные - кошка animal.Dog - животные - собака fish.Carp - рыбы - карп fish.Ling - рыбы - щука bird.poultry.Chicken - домашние птицы - курица bird.poultry.Hen - домашние птицы - петух bird.prey.Eagle - хищные птицы - орёл bird.prey.Kite - хищные птицы - коршун * Обратите внимание, что имена пакетов принято записывать в единственном числе. Придумайте, как каждая из них говорит, организуйте зоопарк из всех животных, рыб и птиц, сархивируйте все классы в один файл, запустите его с флешки. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 9 мин. [Показать отчёт] Научился: импорты подпакетов(вложенных папок) указывай через точку Сложности: вспомнить строку создания jar-архива jar cfe Zoo.jar Zoo Zoo.class animal/*.class bird/poultry/*.class bird/prey/*.class fish/*.class |
|||||
7 | CLASS - Звериное наследство |
без видео 3 теста |
|||
В этом уроке мы познакомимся с понятием ООП - "Наследование". Класс, от которого произошло наследование, называется базовым или родительским (англ. base class). Классы, которые произошли от базового, называются потомками, наследниками или производными классами (англ. derived class). Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 55 мин. [Показать отчёт] Научился: класс-наследник имеет в кармане от класса-родителя все поля и методы, КРОМЕ КОНСТРУКТОРОВ Однако, поля и методы, помеченные "private" недоступны Наследник имеет право добавлять свои поля и методы, переопределять методы в Суперклассе У наследничка может быть лишь ОДИН Cуперкласс Никаких Фигаро тут, Фигаро там с двумя и более кандидатами на Суперклассы |
|||||
8 | CLASS - Три заветных слова |
3 теста |
|||
На этой видеолекции я предоставлю свой взгляд на ООП - что это такое, зачем это нужно и как этим пользоваться.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 59 мин. [Показать отчёт] Научился: Наследование прикручивает классу-потомку весь функционал Суперкласса (за исключением конструкторов) Инкапсуляция позволяет не заморачиваться об устройстве черного ящика. На входе суём мясо, на выходе имеем фарш. А как там эта мясорубка работает, нас не колышет - инкапсуляция разрешает. Конструктор == функция (или метод) с названием как у класса. Конструктор не возвращает никакого значения. Конструктор нужен для инициализации нового объекта. В конструкторе вы вольны в фигурных скобках присваивать полям(переменным) всякие значения, относящиеся к конструируемому объекту (в уроке собаке присваивается способ общения тявкать, а кисе способ коммуницировать с миром посредством мявка) Конструктор актуален для разнесения способов применения внешних команд в разные методы. Торты у всех поваров одинаковые, а вишенки на торты помещают в конструкторы, и берут их оттуда, чтобы не дублировать одинаковое тортостроение много раз abstract class Thing {} - экземпляр такого класса НЕ МОЖЕТ БЫТЬ СОЗДАН! abstract void SomeThing (); - абстрактная функция без определения |
|||||
9 | CLASS - Общий голос |
без видео 3 теста |
|||
Научим зверей издавать звуки. Для этого в родительском классе Animal создадим функцию voice(). Но каждый зверь говорит своим голосом, как это реализовать? Создадим переменную String word - как говорит зверь. Останется в конструкторе каждой зверушки вписать - как именно она разговаривает. Как видете, звери умеют подовать голос, хотя эта функция в их классах не описана. Используется функция из родительского класса. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 14 мин. [Показать отчёт] Научился: прикрутив наследование к своим неким классам, можно создать общий класс, которые определяет характеристики, общие для набора связанных элементов подкласс - это специализированная версия суперкласса, которая наследует все члены суперкласса и добавляет свои собственные |
|||||
10 | CLASS - Модификаторы доступа |
3 теста |
|||
На этом уроке мы поговорим о модификаторах доступа
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 29 мин. [Показать отчёт] Научился: private - частный (закрытый доступ) protected - защищённый (доступ ограничен) К редактированию значений имеют доступ классы-наследники public - публичный (открытый доступ) Классы-наследники автоматически получают все ресурсы (с теми же модификаторами доступа) Суперкласса КРОМЕ PRIVATE Если модификатор не указан явно, то автоматом присваивается package package дает область видимости внутри пакета(файла) |
|||||
11 | CLASS - Подготовка к зачёту - Вспомним дроби |
без видео |
|||
Решить четыре примера с дробями. Решать на бумаге или в паинте, подробно расписать каждое действие. Ответы должны быть видны на картинке. В комментарии написать, какие поля и методы нужны для класса Fraction, который будет работать с дробями. Как работать с дробями: http://math-prosto.ru/?page=pages/drob/drob4.php Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 23 мин. [Показать отчёт] Научился: нужны как минимум 2 переменные для числителя, 2 переменные для знаменателя Метод сложения(положительных и отрицательных переменных), метод умножения (деление сводится к умножению перевернутых дробей) Сложности: Пришлось воспользоваться методичкой, 26 лет после школы пролетело как корова слизала ) |
|||||
12 | CLASS - Зачётная задача № 1 |
3 теста |
|||
Создать класс Fraction. Добавить в него два поля: nominator / denominator. Создать конструктор с двумя параметрами для инициализации дроби. Добавить методы для увеличения, уменьшения, домножения и деления исходной дроби на другую дробь. Создать две дроби, выполнить с ними все действия, вывести результат на экран (из основной программы). * Написать метод для упрощения дроби (поделить числитель и знаменатель на их НОД). Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 41 мин. [Показать отчёт] Научился: класс без методов - это структура (есть лишь поля(переменные) Структура, в которую добавили методы (функции) - это уже класс Конструктор == функция, которая не имеет результата и вызывается при создании объекта (экземпляра класса) КОНСТРУКТОР ИМЕНУЕТСЯ АНАЛОГИЧНО ИМЕНИ КЛАССА Отличительная особенность конструктора - ни void, int, string - никаких типов конструктор не возвращает, оттого и в его заголовке это не найти. Если нашел - это не конструктор Конструктор нужен для того, чтобы использовать одни и те же переменные при создании некоего объекта, эти переменные использующего. Переменные, как штампики Trodat, одному объекту напечатают одну дату, другому объекту (поменяв значение) шлёпнут другую дату к примеру. А конструктор и организует штемпелевание создаваемого объекта одними и теми же переменными, но с разными значениями в них, соответственно кому какие нужны. Дошло, зачем этот конструктор нужен |
|||||
13 | CLASS - Зачётная задача № 2 |
1 тест |
|||
Создайте класс FractionRW, унаследуйте его от Fraction. Создайте конструктор, который принимает числитель и знаменатель, в нём необходимо вызывать конструктор родительского класса. Добавьте в него методы для ввода дроби с клавиатуры и для её вывода на экран. Создайте конструктор без параметров, который запрашивает ввод дроби с клавиатуры. Перепишите программу из прошлого урока с этим классом. Внимание! Метод super() должен вызываться в начале конструктора. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 день 21 час. 22 мин. [Показать отчёт] Научился: разрывы между некоторыми уроками требуют возврата для переосмысления. Решив служить дверьми не хлопай, Бранишь запой - тони в трудах. Нельзя одной и той же жопой Сидеть на разных поездах. Понимания сути классового наследования мало, нужны и знания о подробностях синтаксиса написания инструкций. Пришлось вооружиться тихой кухней и двумя ноутами, пересмотром уроков и поиском формулировок в отчетах курсантов. Урок этот не из тех, что делается на коленке. А кто сделает его на коленке - перед тем снимаю шляпу. Видеообзор: gyRcZjHdU3k |
|||||
14 | CLASS - VIP - Крутятся пластинки |
без видео 1 тест |
|||
На этом уроке мы научимся воспроизводить музыкальные файлы на языке Java. Для начала необходимо выбрать и скачать пару музыкальных файлов в формате WAV. Это можно сделать на сайте: http://freewavesamples.com/ Музыкальные файлы необходимо разместить в корневой папке вашего проекта. Далее - написать программу для их воспроизведения и проверить её работу. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 45 мин. [Показать отчёт] Научился: System.in.read(); - в этом месте программа ожидает нажатия клавиши ENTER Закрытие проигрываемого файла здесь в коде не автоматизировано, надо потрудиться, чтобы файл закрылся и проигрывание перешло к следующему. |
|||||
15 | CLASS2 - Человекостудент |
без видео 1 тест |
|||
Начнём знакомство с наследованием. Чтобы узнать, кто кого наследует, задавайте себе вопросы: человек это студент? При положительных ответах используйте наследование - пишите extends Наберите программу, откомпилируйте и запустите. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 31 мин. [Показать отчёт] Научился: создавая классы внутри класса, делай внутренние классы статическими Если класс помечен как final, то данный класс не может быть унаследован другим классом. |
|||||
16 | CLASS2 - Европейская Прибалтика |
без видео 1 тест |
|||
Пропишите наследование среди указанных классов. Создайте экземпляр каждой страны. class Lithuania {} * Объявите один класс абстрактным. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 56 мин. [Показать отчёт] Научился: суперкласс указывается после ключевого слова extends Ключевой класс должен быть доступным и не иметь модификатора final Поля или методы суперкласса не могут отсутствовать в классе-потомке Наследуются все поля и методы, даже те, что объявлены с модификатором видимости private Сложности: Рассматривал карту Балтии, оказывается Латвия соседствует с островом Готланд, остров Буян из сказок, если не путаю. «Вальдемар Аттердаг собирает дань c жителей Висбю» Карла Густава Хелльквиста - прекрасное полотно позапрошлого столетия. Не так давно по историческим меркам. |
|||||
17 | CLASS2 - Напиток Наследника |
без видео 1 тест |
|||
Проставьте правильно наследование в следующих классах. Создайте некоторые классы абстрактными. В остальных классах сделайте метод toString(), который вернёт название напитка. Создайте экземпляры популярных напитков и отобразите их на экране. Нарисуйте диаграму наследования классов. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 42 мин. [Показать отчёт] Научился: объявление класса абстрактным предполагает запрет создания экземпляров этого класса В отличие от интерфейса, абстрактный класс МОЖЕТ иметь методы или свойства |
|||||
18 | CLASS2 - Песец Членистоногий |
без видео |
|||
На этом уроке мы вспомним Биологию. Оказывается классы в языке Java можно называть по-русски. Создайте 39 классов, используя наследование по схеме. Определите, какие из них должны быть абстрактными. Имена классов ПИШИТЕ РУССКИМИ БУКВАМИ. Откройте дерево наследований классов, комбинация клавиш Ctrl-T. public class Animals Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 53 мин. [Показать отчёт] Научился: у абстрактного класса нельзя создать объект Если нужен объект класса - не далай этот класс абстрактным И наоборот ) |
|||||
Итого: 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 . |