Learning the art of programming, like most other disciplines, consist of first learning the rules and then learning when to break them.
Joshua Bloch

Одним из стандартных подходов при проектировании классов на языке Java является управление доступом к атрибутам класса через пару методов get и set. Реализация этого подхода состоит в том, что атрибуты класса описываются модификатором private, а доступ к этому полю из вне, осуществляется с помощью соответствующих методов getИмяПоля и setИмяПоля. Метод get позволяет получить значение поля, set — установить новое значение. Общий принцип именования этих методов (называемых, также, геттером и сеттером):
В случае, если поле propertyName типа Type не является коллекцией (массив, динамические коллекции — списки, таблицы и т.п.):

Имена соответствующих get и set методов должны быть такими:

То есть, после префикса get или set, с большой буквы записывается имя поля.
Если же поле — коллекция (например, массив), мы говорим об индексированном свойстве (поле или атрибуте):

то как правило определяется 4 метода:

Пример:

В примере приведен класс Human, в котором определены 2 закрытых поля (age и name). Следовательно, получить доступ к этим полям (напрямую, по их имени) из другого класса мы уже не сможем (исключения — методы рефлексии, но сейчас речь не об этом). Однако, с помощью соответствующих методов get и set мы делаем это без проблем.
Ну и еще один момент. Сеттеры, проверяют устанавливаемое значение на соответствие логике работы программы (в нашем случае, возраст не может быть отрицательным, а имя — отсутствовать).

Leave a Reply