Геттеры и Сеттеры

FacebooktwittertumblrFacebooktwittertumblr

 

Предлагаем прочитать Вам 2 статьи о том, что такое геттеры и сеттеры. Это одна из статей из "Самоучителя по Java"  от Vertex Academy.

  • Статью №1 Вы найдете ниже.
  • Статью №2 Вы можете прочитать по ссылочке.
Что такое геттеры и сеттеры?

Следующее понятие из мира ООП, которое следует рассмотреть - это геттеры и сеттеры (getter - от англ. "get" - получать, и setter - от англ. "set" - устанавливать). Это общепринятый способ вводить данные ("set") или получать данные ("get"). Например, у меня есть класс Cat - кошка. Я задаю (используя setter) имя, пол, цвет глаз и окрас кошки (или кота):

А потом, если нужно узнать, какое у кошки имя - получаю с помощь getter - в данном случае getCatName :

 

Зачем они нужны?

Действительно - если я сам все задаю, зачем все эти геттеры и сеттеры?

Тут, нам стоит вспомнить про такой принцип ООП как инкапсуляция (если Вы не знаете, что это такое, вернитесь назад и прочитайте статью "Что такое ООП"). С помощью геттеров и сеттеров Вы защищаете содержимое программы - когда ей пользуется кто-то другой.

Представим, что создается программа, с помощью которой печатаются паспорта. Вам ведь не захочется, чтобы кто-то без доступа  вносил изменения в эту программу?

Как это работает?

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

Вот, в нашем классе есть только имя и цвет кошки/кота. Как создать геттеры и сеттеры для переменных этого класса?

Тут понадобится две составляющие:

1. Задать полям, которые мы хотим защитить, свойство private.

2. Написать метод геттер/ сеттер для каждого поля.

Для поля name:

Как Вы могли заметить, метод getName (имя метода-геттера состоит из слова get + название переменной) - это метод, который возвращает переменную типа String (т.е. имя кошки), и при этом не требует никаких данных.

Метод setName (имя метода-сеттера тоже состоит из слова set + название переменной) ничего не возвращает (void) но при этом требует String - новое значение для переменной name.

Теперь, таким же образом, напишем геттер и сеттер для переменной color:

Видите - геттеры и сеттеры создаются по одному и тому же шаблону. Кроме того, Вы могли обратить внимание на эти строчки:

Посмотрите на слово this. Дело в том, что в данном методе есть две переменные с одинаковым названием - переменная String color, которую мы объявили ранее для всего класса, и переменная внутри метода:

Это означает, что программа не знает - когда Вы пишете, например, "color =", который из них Вы имеете ввиду? Поэтому, для обозначения переменной, объявленной для всего класса, используется слово "this":

Поздравляем - теперь Вы знаете, как создавать геттеры и сеттеры!

О чем нужно помнить?

Пожалуйста, всегда обращайте внимание на следующее:

1. Наименование полей (переменных, содержащихся в классе) всегда пишется с маленькой буквы (например, int number, String name, и т.д.).

2. Как уже говорилось, наименование геттеров и сеттеров - в формате "get" + имя переменной с большой буквы (например, getColor, getName).

3. Метод геттер не имеет параметров (т.е. в скобках ничего не пишется) и возвращает значение одной переменной (одного поля).

4. Метод сеттер всегда имеет модификатор void и только один параметр, для изменения значения одного поля.

 


Cтатья написана Vertex Academy. Также мы проводим курсы Java с нуля. Детальнее на сайте.

 

FacebooktwittertumblrFacebooktwittertumblr

FacebooktwittertumblrFacebooktwittertumblr
Самоучители--узнать детальнее--