Использование аксессоров и мутаторов в Java

Один из способов, которым мы можем обеспечить инкапсуляция данных через использование аксессоров и мутаторов. Роль аксессоров и мутаторов - возвращать и устанавливать значения состояния объекта. Давайте узнаем, как программировать аксессоры и мутаторы в Джава. В качестве примера мы будем использовать Персональный класс с состоянием и конструктором уже определены:

Методы доступа

сбруя Метод используется для возврата значения частного поля. Он следует схеме именования с префиксом слова «get» перед началом имени метода. Например, давайте добавим методы доступа для имени, отчества и фамилии:

Эти методы всегда возвращают тот же тип данных, что и их соответствующее приватное поле (например, String), а затем просто возвращают значение этого приватного поля.

Теперь мы можем получить доступ к их значениям с помощью методов объекта Person:

Методы мутации

Метод мутатора используется для установки значения частного поля. Он следует схеме именования с префиксом слова «set» в начале имени метода. Например, давайте добавим поля мутатора для адреса и имени пользователя:

instagram viewer

Эти методы не имеют возвращаемого типа и принимают параметр, который имеет тот же тип данных, что и их соответствующее закрытое поле. Затем параметр используется для установки значения этого частного поля.

Теперь можно изменить значения для адреса и имени пользователя внутри объекта Person:

Зачем использовать аксессоры и мутаторы?

Легко прийти к выводу, что мы могли бы просто изменить закрытые поля определения класса, чтобы они были общедоступными и достичь тех же результатов. Важно помнить, что мы хотим максимально скрыть данные объекта. Экстра буфер С помощью этих методов мы можем:

  • Изменить способ обработки данных за кулисами.
  • Установите проверку значений, для которых устанавливаются поля.

Допустим, мы решили изменить способ хранения отчеств. Вместо одной строки мы можем теперь использовать массив строк:

Реализация внутри объекта изменилась, но внешний мир не пострадал. Способ вызова методов остается точно таким же:

Или, скажем, приложение, использующее объект Person, может принимать только имена пользователей, содержащие не более десяти символов. Мы можем добавить проверку в мутаторе setUsername, чтобы убедиться, что имя пользователя соответствует этому требованию:

Теперь, если имя пользователя, переданное мутатору setUsername, длиннее десяти символов, оно автоматически усекается.

instagram story viewer