Назад к вопросам
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("") # Пример использования сеттера с валидацией

Использование геттеров и сеттеров способствует инкапсуляции, позволяя управлять доступом и модификацией данных внутри объекта, обеспечивая лучшую структуру и поддерживаемость кода.