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;  | |||
|  |  }  | |||
|  | 
 | |||
|  | ``` |