На уроке по разработке программного обеспечения в моем университете учитель постоянно упоминал, что в викторине нам нужно было убедиться, что поле, возвращаемое получателем, необходимо "защитить". Я предполагаю, что она имела в виду, что ничто вне класса не сможет изменить это. Она не дала гораздо большего объяснения, чем это.
Например:
class Foo {
string[] bar = <some array contents>;
public string[] getBar() {
return bar;
}
}
Любой код, вызывающий getBar, сможет изменять элементы в этом массиве. Как вы предотвращаете это? Я предполагаю, что сам объект должен иметь возможность изменять массив, но не что-либо вне объекта.
Это не домашняя помощь, так как тесту пару недель. Я просто хочу лучше понимать Java, поскольку мой учитель не очень хорошо объяснял.
Обновление: учитель не позволил бы нам использовать защищенный в качестве модификатора доступа на поле.