Задачу конечно решил, но так и не понял что она делает, и на что она была направлена, просто создать классы и методы которые возвращают то что написано в условии, может кто нибудь разъяснить чему я должен был научиться когда ее решал?