Объяснение геттеров и сетеров в Java

obyasnenie getterov i seterov v java

Getters и setters используются для защиты ваших данных, особенно при создании классов.

Для каждого переменного экземпляра метод getter возвращает свое значение, тогда как метод setter устанавливает или обновляет свое значение. Учитывая это, гетеры и сеттеры также известны как аксессуары и мутаторысоответственно.

По условию, гетеры начинаются со слова «get», а сеттеры – со слова «set», за которым следует имя переменной. В обоих случаях первая буква имени переменной пишется с прописной:

public class Vehicle {
  private String color;
  
  // Getter
  public String getColor() {
    return color;
  }
  
  // Setter
  public void setColor(String c) {
    this.color = c;
  }
}

Метод getter возвращает значение атрибута. Метод setter принимает параметр и назначает его атрибуту.

После того, как геттер и сеттер определены, мы используем их в нашем main:

public static void main(String[] args) {
  Vehicle v1 = new Vehicle();
  v1.setColor("Red");
  System.out.println(v1.getColor());
}

// Outputs "Red"

Гетеры и сеттеры позволяют контролировать значение. Вы можете проверить заданное значение в установке перед фактической установкой значения.

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

Гетеры и сеттеры позволяют контролировать доступ к важным переменным и их обновления в вашем коде. Например, рассмотрим этот метод установки:

public void setNumber(int number) {
  if (number < 1 || number > 10) {
    throw new IllegalArgumentException();
  }
  this.number = num;
}

С помощью setNumber метода, вы можете быть уверены в значении number всегда от 1 до 10. Это гораздо лучше, чем обновлять файл number переменная напрямую:

obj.number = 13;

Если вы обновите number непосредственно, возможно, вы вызовете нежелательные побочные эффекты где-нибудь в вашем коде. Вот, настройки number до 13 нарушает ограничение от 1 до 10, которое мы хотим установить.

Изготовление number частную переменную и использование setNumber метод предотвращает это.

С другой стороны, единственный способ прочитать значение number это с помощью метода геттера:

public int getNumber() {
  return this.number;
}

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *