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.