Назад к вопросам
Intern
81
questionbank
Что такое геттер и сеттер?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Геттер (getter) и сеттер (setter) — это специальные методы, используемые в объектно-ориентированном программировании для доступа и изменения значений приватных (или защищенных) полей класса.
Геттер:
- Предоставляет контролируемый доступ для чтения значения поля.
- Обычно имеет имя, начинающееся с
get(например,getName()). - Может выполнять дополнительные действия перед возвратом значения (например, форматирование или валидация).
Сеттер:
- Предоставляет контролируемый доступ для записи нового значения в поле.
- Обычно имеет имя, начинающееся с
set(например,setName()). - Может выполнять валидацию входных данных перед присвоением значения полю.
- Позволяет реализовать логику при изменении значения поля (например, уведомление других частей программы).
Пример на Python:
class Person:
def __init__(self, name):
self._name = name # Приватное поле
# Геттер
def get_name(self):
return self._name
# Сеттер
def set_name(self, new_name):
if isinstance(new_name, str) and len(new_name) > 0:
self._name = new_name
else:
print("Invalid name provided")
# Использование
person = Person("Alice")
print(person.get_name()) # Использование геттера
person.set_name("Bob") # Использование сеттера
print(person.get_name())
person.set_name("") # Пример использования сеттера с валидацией
Использование геттеров и сеттеров способствует инкапсуляции, позволяя управлять доступом и модификацией данных внутри объекта, обеспечивая лучшую структуру и поддерживаемость кода.