Содержание

  1. Интерфейсы
    1. Определение
    2. Применение
    3. Реализация
  2. Наследование
    1. Синтаксис
    2. Применение
    3. Модификатор protected
  3. Пакеты
    1. Синтаксис
    2. Применение

Домашнее задание 7. Разметка

Разметка
  1. Разработайте набор классов для текстовой разметки.
  2. Класс Paragraph может содержать поизвольное число других элементов разметки и текстовых элементов.
  3. Класс Text – текстовый элемент.
  4. Классы разметки Emphasis, Strong, Strikeout – выделеные, сильное выделение и зачеркивание. Элементы разметки могут содержать поизвольное число других элементов разметки и текстовых элементов.
  5. Все классы должны реализовывать метод toMarkdown(StringBuilder), которой должен генерировать Markdown-разметку по следующим правилам:
    1. текстовые элементы выводятся как есть;
    2. выделеный текст окружается символами '*';
    3. сильно выделеный текст окружается символами '__';
    4. зачеркнутый текст окружается символами '~'.
  6. Следующий код должен успешно компилироваться:
        Paragraph paragraph = new Paragraph(Collections.singletonList(
            new Strong(Arrays.asList(
                new Text("1"),
                new Strikeout(Arrays.asList(
                    new Text("2"),
                    new Emphasis(Arrays.asList(
                        new Text("3"),
                        new Text("4")
                    )),
                    new Text("5")
                )),
                new Text("6")
            ))
        ));
    
    Вызов paragraph.toMakdown(new StringBuilder()) должен заполнять переданный StringBuilder следующим содержимым:
        __1~2*34*5~6__
    
  7. Разработанные классы должны находиться в пакете markup.

Примеры

zip

Практические навыки

  1. Базовые понимание интерфейсов, наследования и связанных концепций