Sobes.tech
Intern

Какво е геттер и сеттер?

sobes.tech AI

Отговор от 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("Невалидно име")

# Използване
person = Person("Alice")
print(person.get_name()) # Използване на гетъра

person.set_name("Bob") # Използване на сетъра
print(person.get_name())

person.set_name("") # Пример за използване на сетър с валидиране

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