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

3 уровень, 11 лекция
Открыта

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

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

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

7
Задача
Java Core,  3 уровень,  11 лекция
Недоступна
Некорректные строки
Есть интерфейс Button, полный некорректных строк. Вы, наверное, уже догадались, что вам нужно их удалить оттуда, и при этом не выйти за рамки установленных требований. Желаем удачи на этом поприще!
7
Задача
Java Core,  3 уровень,  11 лекция
Недоступна
The weather is fine
Есть класс Today. В нем нужно реализовать интерфейс Weather и метод getWeatherType, объявленный в интерфейсе Weather. Подумайте, как связан параметр type с методом getWeatherType(). Поскорее приступайте!
7
Задача
Java Core,  3 уровень,  11 лекция
Недоступна
Чтение файла
Пришло новое задание от капитана Боброва: считать с консоли имя файла. Затем вывести в консоль (на экран) содержимое этого файла. В конце не забудьте освободить ресурсы, закрыть поток чтения с файла и поток ввода с клавиатуры.
7
Задача
Java Core,  3 уровень,  11 лекция
Недоступна
Писатель в файл с консоли
Итак, вам нужно записать кое-что в файл. Для этого первым делом вы читаете с консоли имя файла, затем считываете строки до тех пор, пока пользователь не введёт слово exit и, наконец, выводите абсолютно все введённые строки в файл, каждую строчку с новой строки.
7
Задача
Java Core,  3 уровень,  11 лекция
Недоступна
Neo
Давайте инициализируем пользователя номер один по имени Нео. Для этого реализуем интерфейс DBObject в классе User, и метод initializeIdAndName так, чтобы программа работала и выводила на экран «The user's name is Neo, id = 1».
7
Задача
Java Core,  3 уровень,  11 лекция
Недоступна
Исправление ошибок
Корректируем код, который работает совсем не так, как мы хотим, а то и вовсе не работает. Вам предстоит переделать наследование в классах и интерфейсах таким образом, чтобы программа компилировалась и продолжала делать то же самое. При этом класс Hobby должен наследоваться от интерфейсов Desire и Dream.
7
Задача
Java Core,  3 уровень,  11 лекция
Недоступна
Интерфейс SimpleObject
В этой задаче вам предстоит создать класс StringObject. А в нём — интерфейс SimpleObject с параметром типа String. Разумеется, при этом программа обязана нормально работать и компилироваться. Вперед!
7
Задача
Java Core,  3 уровень,  11 лекция
Недоступна
Интерфейс Updatable в классе Screen
Капитан Бобров представляет: ещё одна замечательная программа, которую предстоит создать ученикам секретного центра JavaRush! В этот раз вам нужно создать интерфейс Updatable в классе Screen.
7
Задача
Java Core,  3 уровень,  11 лекция
Недоступна
Один метод в классе
В этой задачке вам нужно реализовать наследование класса Fox от интерфейса Animal. Удалять методы нельзя, но при этом нужно поменять код так, чтобы в классе Fox был только один метод — getName.
7
Задача
Java Core,  3 уровень,  11 лекция
Недоступна
Компиляция программы
У вас есть просто лисица и её наследница, большая лисица. Исправьте классы Fox и BigFox так, чтобы программа компилировалась. Задача не предполагает создания экземпляров базового класса. Метод main тоже лучше не трогать.

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

7
Задача
Java Core,  3 уровень,  11 лекция
Недоступна
Сортировка четных чисел из файла
Если упорядоченный изоморф не уверен в трезвости другого упорядоченного изоморфа, он просит его пройти простенький тестик: сначала ввести имя файла с консоли, прочитать из него набор чисел, а затем вывести на консоль только четные, отсортированные по возрастанию. Получится?
7
Задача
Java Core,  3 уровень,  11 лекция
Недоступна
Репка
Классическая террианская сказка рассказывает о любопытном механизме извлечения чрезмерно разросшихся корнеплодов из грунта. В научных работах он известен как «Babka za Dedku». Предлагаем вам углубиться в это земное ноу-хау и реализовать интерфейс RepkaItem в классе Person и метод, который выводит фразу типа ‘name за person‘
7
Задача
Java Core,  3 уровень,  11 лекция
Недоступна
Битва роботов
Юный робот решил запрограммировать сам себя на бой с другим роботом по имени Сгибальщик-2. Однако до конца дела пока не довёл. Теперь это ваша проблема… Ох, простите, ваша задача. Впрочем, не стоит беспокоиться: битвы роботов отличаются от драк тех, кто из плоти и крови ещё и своей логичностью.
Комментарии (238)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Ner'Zhul13 уровень
воскресенье, 11:31
Добавляю блок finally чтобы закрывать в нем потоки. Почему все переменные подчеркиваются как будто их нет? Как будто они объявлены где то в другом методе?
Eiffil14 уровень, Москва
воскресенье, 20:17
Сами переменные нужно объявить вне блока try, а объекты создавать уже в этом блоке.
Ner'Zhul13 уровень
понедельник, 06:30
Спасибо. Думал что блок try/catch/finally что то вроде одного метода и видимость переменных во всех блоках. А оно вот как. А если так, то зачем закрывать потоки, т.к. по окончании блока все что было в нем объявлено исчезнет, ведь потоки будут локальными переменными?
Eiffil14 уровень, Москва
понедельник, 17:42
Для простоты лучше считать, что код, заключенный в фигурные скобки, образует отдельную область видимости переменных. Однако когда работа метода вышла за фигурные скобки, это не значит, что объекта нет. Это значит, что мы не можем до него "достучаться". Поток исчезнет только тогда, когда до объекта, работающего с этим потоком, доберется сборщик мусора. А это вообще может не случиться до конца работы программы. Всякие потоковые ресурсы лучше сразу закрывать, как только они не нужны.
Furer19 уровень, Москва
31 августа, 21:11
Подскажите по задаче про роботов. В классе Абстрактробот я создал метод getName(), класс робот унаследовал его. Почему у меня вызывается метод getName() родителя (и выдаёт null), а не робота? Если в классе робот переопределить этот метод, то он возвращает именно имя робота. Но он же должен автоматом возвращать name дочернего класса или нет?
Andrey16 уровень, Москва
4 сентября, 18:33
Если я правильно понял, то поля private недоступны вне базового класса (у наследуемых) Я же просто сделал абстрактным метод getName и в классе Robot создал поле name и переопределил метод getName где возвращаю имя
Griever Graver22 уровень, Москва
27 августа, 19:21
Писатель в файл с консоли - аж два раза повторяется в условии, что нужно сохранить в файл АБСОЛЮТНО все строки, введённые с консоли, но при этом имя файла, введённое с консоли сохранять, как оказалось, не надо. Обидка.
Хорс16 уровень, Харьков
26 августа, 11:51
"Сортировка четных чисел из файла" интересная задача! Наконец-то я почитал Шилдта и начал что-то понимать в IO
Alexander Taluevsky15 уровень, Минск
19 августа, 05:36
что-то я запутался в этих ридерах, райтерах...чтот их много так...BufferedReader, StringBufferInputStream, BufferedInputStream, FileInputStream, InputStream, FileReader, DataOutputStream и остальные аутпуты...как всё это в систему привести? может есть какие подробно разжёвывающие видео или статьи(на человеческом языке)?? застрял конкретно на этой теме, задания как-то больше по наитию, чем осознанно выполняются
Хорс16 уровень, Харьков
26 августа, 12:05
Смотри, потоки ввода-вывода делятся на 2 большие группы: байтовые (считывают байты) и символьные (считывают символы). Классы байтового ввода-вывода это все те, название которых завершается "...Stream" Классы символьного ввода-вывода это все те, название которых завершается "...Reader" и "...Writer". Класс InputStreamReader- это своего рода переходник, он преобразует байты в символы. Пример: FileInputStream fis = new FileInputStream(data.txt); //поток ввода, читающий байты из файла с именем data.txt InputStreamReader isr = new InputStreamReader(fis); //поток ввода, преобразующий байты в символы; BufferedReader bReader = new BufferedReader(isr); // буферизированный поток ввода символов
Alexander Taluevsky15 уровень, Минск
26 августа, 12:34
ну вроде трохи понятнее стало... а вот конструкция: BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String s = reader.readLine(); означает, что: 1) System.in - источник данных - консоль 2) InputStreamReader(System.in) - считываем с консоли байты сразу же преобразовывая их в символы 3) BufferedReader(new InputStreamReader(System.in)) - а это как бы значит что методом reader.readLine() мы возвращаем не по одному символу, а всю строку Типо того?))
Хорс16 уровень, Харьков
26 августа, 12:55
почти так 1) System.in - это стандартный поток ввода (по умолчанию - клавиатура) 2) да, только данные считываем с клавиатуры 3) BufferedReader - это класс с буферизированным вводом данных. В книге HeadFirst есть прекрасная аналогия: BufferedReader - это тележка, тебе проще сгрузить все продукты к тележке и отвезти их к машине, чем без тележки бегать и по одному приносить. а readLine - это один из методов класса BufferedReader, и да- он считывает символьные строки
Хорс16 уровень, Харьков
26 августа, 12:58
https://javarush.ru/groups/posts/2020-vvod-vihvod-v-java-klassih-fileinputstream-fileoutputstream-bufferedinputstream
Роджер Вилко22 уровень, планета Ксенон
15 августа, 13:38
Самое обидное что половина задач прохожу не с первого и даже не со второго раза тупо изза невнимательности к условию, надо лекцию по этому поводу))
mimimiriam14 уровень, Санкт-Петербург
12 августа, 17:27
Почувствовала себя тупой
Алексей16 уровень, Киев
12 августа, 12:31
Писатель файла с консоли - сраная Ж. Пытался решить две недели назад - решение не принимало. Сейчас, ничего не менял, приняло что за фигня? Причем, решение не соответствует условию.
Айдар16 уровень, Набережные Челны
11 августа, 09:28
Репка за дедку :)
Mikhail18 уровень, Москва
26 июля, 10:01
Лично я пропустил пока задачи на BufferedWriter, и прочее чтение и запись в файлы. Этого не объясняли, а тупо копировать найденный в гугле текст я не хочу. Вернусь после лекции на эту тему.
ivanko33816 уровень
29 июля, 05:52
профессор объяснял
Mikhail18 уровень, Москва
29 июля, 11:16
бегло. и осталось много вопросов. например, почему InputStream считывает байты, а записываются они в переменную int?
Vladimir Tanski16 уровень, Тель-Авив
29 июля, 20:38
Потому , что вся информация состоит из байтов , не зависимо от того картинка это , видео или песня. Попробуй , что то с компьютера скопировать с новым названием, увидишь как будут бежать байты а в итого получишь копию файла :)
Mikhail18 уровень, Москва
30 июля, 11:57
Это тоже понятно, но где-то я что-то недополнял, видимо. Пробовал сохранять эти байты в переменную типа byte, а не int - возникала ошибка. То есть вот этот момент я не понял, почему байты сохранять в инт можно, а в байт - нет.
Максим Кожинов26 уровень, Саратов
30 июля, 15:21
Каждый символ кодируется. Для хранения символов есть тип данных char. Диапазон числовых значений char - 0...65,535. Диапазон числовых значений byte -128..127. Тип byte не подходит, у него слишком маленький размер - данные теряются. (у int -2*10^9...2*10^9)
Алексей Васильевич23 уровень, Алматы
14 августа, 11:08
Просто функция read возвращает значение типа int поэтому в байт записать нельзя.