1. Зачем public в строке, конкретно для этой задачи?
public String name;
Без него вроде бы тоже всё работает должным образом.
2. Как нужно изменить задачу, что бы этот public понадобился?
2. Как одним словом называются ключевые слова такие как void, public, static?