73 lines
3.6 KiB
Markdown
73 lines
3.6 KiB
Markdown
---
|
||
title: Getters & Setters
|
||
localeTitle: Getters & Setters
|
||
---
|
||
# Getters & Setters
|
||
|
||
Getters и Setters используются для эффективной защиты ваших данных, особенно при создании классов. Для каждой переменной экземпляра метод getter возвращает свое значение, в то время как метод setter устанавливает или обновляет его значение. Геттеры и сеттеры также известны как аксессоры и мутаторы, соответственно.
|
||
|
||
По соглашению, getters начинаются с get, за которым следует имя переменной, с первой буквой имени переменной с заглавной буквы. Стартеры начинаются с набора, за которым следует имя переменной, с первой буквой имени переменной с заглавной буквы.
|
||
|
||
**_Пример:_**
|
||
|
||
```java
|
||
public class Vehicle {
|
||
private String color;
|
||
|
||
// Getter
|
||
public String getColor() {
|
||
return color;
|
||
}
|
||
|
||
// Setter
|
||
public void setColor(String c) {
|
||
this.color = c;
|
||
}
|
||
}
|
||
```
|
||
|
||
Метод getter возвращает значение атрибута. Метод setter принимает параметр и присваивает его атрибуту.
|
||
|
||
Как только геттер и сеттер были определены, мы используем его в нашей основной:
|
||
|
||
```java
|
||
public stativ void main(String[] args) {
|
||
Vehicle v1 = new Vehicle();
|
||
v1.setColor("Red");
|
||
System.out.println(v1.getColor());
|
||
}
|
||
|
||
// Outputs "Red"
|
||
```
|
||
|
||
* * *
|
||
|
||
Getters и seters позволяют контролировать значения. Вы можете проверить данное значение в настройщике, прежде чем устанавливать значение.
|
||
|
||
## Почему геттер и сеттер?
|
||
|
||
Используя геттер и сеттер, программист может контролировать доступ и обновление важных переменных, например изменение значения переменной в заданном диапазоне. Рассмотрим следующий код метода сеттера:
|
||
|
||
```java
|
||
public void setNumber(int num) {
|
||
if (num < 10 || num > 100) {
|
||
throw new IllegalArgumentException();
|
||
}
|
||
this.number = num;
|
||
}
|
||
```
|
||
|
||
Это гарантирует, что значение числа всегда устанавливается между 10 и 100. Если программист позволяет напрямую изменять значение переменной, вызывающий может установить для него любое произвольное значение:
|
||
|
||
```java
|
||
obj.number = 3;
|
||
```
|
||
|
||
Это нарушает ограничение для значений от 10 до 100 для этой переменной. Поскольку мы не ожидаем, что это произойдет, скрытие номера переменной как частного и использование setter предотвращает ее. С другой стороны, метод getter - единственный способ для внешнего мира прочитать значение переменной:
|
||
|
||
```java
|
||
public int getNumber() {
|
||
return this.number;
|
||
}
|
||
|
||
``` |