Геттеры и сеттеры в Java: что это и как использовать
В Java геттеры и сеттеры - это методы, которые используются для доступа к значению приватных полей класса. Геттер (getter) возвращает значение поля, а сеттер (setter) устанавливает его.
Пример геттера:
java
public class Person {
private String name;
public String getName() {
return name;
}
}
В данном примере класс Person содержит приватное поле name и метод getName(), который возвращает значение поля name. Геттеры обычно именуются с префиксом get, за которым следует имя поля (в данном случае getName).
Пример сеттера:
java
public class Person {
private String name;
public void setName(String name) {
this.name = name;
}
}
В данном примере класс Person содержит приватное поле name и метод setName(), который принимает значение и устанавливает его в поле name. Сеттеры обычно именуются с префиксом set, за которым следует имя поля (в данном случае setName).
Геттеры и сеттеры позволяют контролировать доступ к приватным полям класса. Например, если мы хотим, чтобы значение поля name было всегда в верхнем регистре, мы можем изменить геттер и сеттер следующим образом:
java
public class Person {
private String name;
public String getName() {
return name.toUpperCase();
}
public void setName(String name) {
this.name = name.toUpperCase();
}
}
Таким образом, при получении или установке значения поля name, оно всегда будет переводиться в верхний регистр.
Геттеры и сеттеры также позволяют скрыть внутреннюю реализацию класса от пользователя, что упрощает его использование. Например, мы можем скрыть реализацию поля name и использовать его только через геттер и сеттер:
java
public class Person {
private String name;
public void setName(String name) {
this.name = "Hello, " + name + "!";
}
public String getGreeting() {
return name;
}
}
В данном примере метод setName() изменяет значение поля name, добавляя к нему префикс "Hello, " и суффикс "!", а метод getGreeting() возвращает значение поля с таким же префиксом и суффиксом. Это позволяет скрыть от пользователя детали реализации класса Person и упростить его использование:
java
Person person = new Person();
person.setName("Alice");
System.out.println(person.getGreeting()); // выведет "Hello, Alice!"