Вопрос к коду с 53 по 55 строку:
public MarkTwainBook getBook() {
    return this;
}
Этот метод написан просто для задачи или имеет какой-то смысл? Я понимаю так: у объекта MarkTwainBook мы вызываем метод getBook(), чтобы получить этот объект. Как-то бессмысленно..