Sobes.tech
Intern

Czym jest getter i setter?

sobes.tech AI

Odpowiedź od AI

Getter i setter to specjalne metody używane w programowaniu obiektowym do dostępu i modyfikacji wartości pól prywatnych (lub chronionych) klasy.

Getter:

  • Zapewnia kontrolowany dostęp do odczytu wartości pola.
  • Zazwyczaj ma nazwę zaczynającą się od get (np. getName()).
  • Może wykonywać dodatkowe działania przed zwróceniem wartości (np. formatowanie lub walidacja).

Setter:

  • Zapewnia kontrolowany dostęp do zapisu nowej wartości w polu.
  • Zazwyczaj ma nazwę zaczynającą się od set (np. setName()).
  • Może wykonywać walidację danych wejściowych przed przypisaniem wartości do pola.
  • Pozwala na implementację logiki przy zmianie wartości pola (np. powiadomienie innych części programu).

Przykład w Pythonie:

class Person:
    def __init__(self, name):
        self._name = name # Prywatne pole

    # Getter
    def get_name(self):
        return self._name

    # Setter
    def set_name(self, new_name):
        if isinstance(new_name, str) and len(new_name) > 0:
            self._name = new_name
        else:
            print("Nieprawidłowa nazwa")

# Użycie
person = Person("Alice")
print(person.get_name()) # Użycie gettera

person.set_name("Bob") # Użycie settera
print(person.get_name())

person.set_name("") # Przykład użycia settera z walidacją

Użycie getterów i setterów sprzyja enkapsulacji, umożliwiając zarządzanie dostępem i modyfikacją danych wewnątrz obiektu, zapewniając lepszą strukturę i łatwość utrzymania kodu.