AmigoOutputStream

  • 10
  • Недоступна
1 Измени класс AmigoOutputStream так, чтобы он стал Wrapper-ом для класса FileOutputStream. Используй наследование. 2 При вызове метода close() должны выполняться следующая последовательность действий: 2.1 Вызвать метод flush(). 2.2 Дописать следующий текст "JavaRush © All rights reserved.", использ
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (95)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Тимур18 уровень
9 июня, 08:08
во я залип... уже думал никогда не сделаю ))) жесткая задачка
Roman Komarov18 уровень, Минск
6 июня, 20:02
Аффтерры жгуд... пояснение к 2.2 Дописать следующий текст "JavaRush © All rights reserved.", используй метод getBytes(). это означает, что нужно дописать этот текст в поток, в виде байт-последовательности, и потом закрвть поток.
Anton Rymarenko22 уровень
3 июня, 11:22
последнее время я не особо понимаю что делаю.Обертки вообще не зашли .Пойду листать книги.
Dorian Goldmann22 уровень, Харьков
29 мая, 06:02
Как-то странно получается. Декоратор - это обёртка, которая реализует ТОТ ЖЕ интерфейс, КОТОРЫЙ реализует ОБОРАЧИВАЕМЫЙ класс. Фишка декоратора в том, что не нужно наследоваться от класса для расширения функциональности. А тут нас просят создать декоратор, который наследуется от класса, которому нужно расширить функционал. Это ошибка разрабов или я что-то концептуально неправильно понял?
Nubas18 уровень, Новосибирск
23 мая, 22:04
Vit20 уровень, Москва
16 мая, 16:30
боль, я испытал боль.
Андрей18 уровень, Новосибирск
27 апреля, 12:37
По-хорошему же (не в рамках данной задачи а вообще) использовать поле публичное поле класса - неправильно, нужно как-то вытаскивать имя файла из переданного экземпляра FileOutputStream? Правильно я понимаю что кроме как через Reflection API, других вариантов нет?
Oleg19 уровень
16 апреля, 14:07
одного меня постановка задачи только еще больше путает после и без того не самой лучшей лекции про обертывание? Вроде как надо создавать абстрактный класс, в котором есть конструктор принимающий (приведенный к интерфейсу) тип-оборачиваемого класса и уже в созданном классе "расширять" функциональность! Но фраза: " Измени класс AmigoOutputStream так, чтобы он стал Wrapper-ом для класса FileOutputStream. Используй наследование." меня вообще дезориентирует в нуль! Кроме того, как я понял необходимо наследоваться от родителя обертываемого класса!!! То есть от OutputStream! Что вообще происходит с лекциями, что за ....???
Артём Стариков25 уровень, Екатеринбург
14 апреля, 04:28
JavaRush © All rights reserved. Если забудешь после ресёрвд поставить точку, то никогда не узнаешь почему не прошел 5 пункт валидатора
Рустем19 уровень, Казань
12 апреля, 07:47
Объясните, а то я не понял) 1) В лекции говорится "1) Создать свой класс-обертку и унаследоваться от того же класса/интерфейса что и оборачиваемый объект.", но в данной задаче мы наследуемся от самого класса FileOutputStream, а не его родителя OutputStream. 2) Валидатор такое принял: public AmigoOutputStream(FileOutputStream fileOutputStream) throws FileNotFoundException{ super(fileName); this.fileOutputStream = fileOutputStream; } Получается, что super - создает объект FileOutputStream, а еще мы дополнительно передаем новый FileInputStream. А делегируем методы, видимо потому, что по умолчанию будут использоваться методы объекта super, а не переданного. 3) Мне кажется, что это обычное наследование, но просто сюда прикрутили элементы обертки, и "типа" это стало оберткой. 4) Да и зачем вообще это наследование, если мы все делегируем?