Sobes.tech
Intern

Cos'è un getter e un setter?

sobes.tech AI

Risposta dell'AI

Un getter e un setter sono metodi speciali utilizzati nella programmazione orientata agli oggetti per accedere e modificare i valori dei campi privati (o protetti) di una classe.

Getter:

  • Fornisce un accesso controllato per leggere il valore del campo.
  • Di solito ha un nome che inizia con get (ad esempio, getName()).
  • Può eseguire azioni aggiuntive prima di restituire il valore (ad esempio, formattazione o validazione).

Setter:

  • Fornisce un accesso controllato per scrivere un nuovo valore nel campo.
  • Di solito ha un nome che inizia con set (ad esempio, setName()).
  • Può eseguire validazioni sui dati di input prima di assegnare il valore al campo.
  • Permette di implementare logica durante la modifica del valore del campo (ad esempio, notificare altre parti del programma).

Esempio in Python:

class Person:
    def __init__(self, name):
        self._name = name # Campo privato

    # 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("Nome non valido")

# Utilizzo
person = Person("Alice")
print(person.get_name()) # Utilizzo del getter

person.set_name("Bob") # Utilizzo del setter
print(person.get_name())

person.set_name("") # Esempio di utilizzo del setter con validazione

L'uso di getter e setter favorisce l'incapsulamento, consentendo di gestire l'accesso e la modifica dei dati all'interno dell'oggetto, garantendo una migliore struttura e manutenibilità del codice.