Uno dei modi in cui possiamo emanare l’incapsulamento dei dati è attraverso l’uso di accessori e mutatori. Il ruolo dei descrittori di accesso e dei mutatori è quello di restituire e impostare i valori dello stato di un oggetto. Impariamo a programmare descrittori di accesso e mutatori a Java. Ad esempio, useremo una classe persona con lo stato e il costruttore già definito:
metodi di accesso
un metodo di accesso viene utilizzato per restituire il valore di un campo privato. Seguire uno schema di nomenclatura che impedisce la parola “ottenere” all’inizio del nome del metodo. Ad esempio, aggiungi metodi di accesso per netnname, middlenames e lastname:
Questi metodi vengono sempre restituiti lo stesso tipo di dati come campo privato corrispondente (ad esempio, stringa) e quindi restituire semplicemente il valore di quel campo Privato.
Ora possiamo accedere ai suoi valori attraverso i metodi di un oggetto persona:
Metodi mutanti
Un metodo mutatore viene utilizzato per impostare un valore di un campo privato. Seguire uno schema di nomenclatura che impedisce la parola “set” all’inizio del nome del metodo. Ad esempio, aggiungiamo campi mutanti per l’indirizzo e il nome utente:
questi metodi non hanno un tasso di restituzione e accetta un parametro che è lo stesso tipo di dati come il campo privato corrispondente. Quindi, il parametro viene utilizzato per impostare il valore di quel campo privato.
Ora è possibile modificare i valori dell’indirizzo e il nome utente all’interno dell’oggetto della persona:
da cosa usare accessori e mutator?
È facile venire alla conclusione che potremmo semplicemente modificare i campi privati della definizione della classe in modo che siano pubblici e raggiungono gli stessi risultati. È importante ricordare che vogliamo nascondere il più possibile i dati dell’oggetto. Il buffer aggiuntivo fornito da questi metodi ci consente di:
- Modificare il modo in cui vengono gestiti i dati del fotogramma.
- impone la convalida ai valori su cui i campi .
Diciamo che abbiamo deciso di modificare come memorizziamo il secondo nome. Invece di una sola catena, ora possiamo usare una matrice a catena:
L’implementazione all’interno dell’oggetto è cambiata, ma il mondo esterno non è influenzato. Il modo in cui sono chiamati i metodi rimangono esattamente la stessa:
o, diciamo che l’applicazione che utilizza l’oggetto Person può accettare solo nomi utente che hanno un massimo di dieci caratteri. Possiamo aggiungere convalida sul mutatore SetUserName per assicurarci che il nome utente sia conforme a questo requisito:
Ora, se il nome utente è passato al mutiero SetUserName ha più di dieci caratteri, viene automaticamente troncato.