Java è un linguaggio di programmazione orientato agli oggetti ( OOP ) . Codice orientato agli oggetti è organizzato utilizzando un costrutto chiamato " classe", che serve come un modello per la creazione di un "oggetto ". Un oggetto è un insieme di proprietà ( variabili membro ) e comportamenti (metodi) . In genere , le variabili membro sono private e possono accedere solo l' oggetto che li contiene . " Get " e metodi "set", chiamati anche " getter " e " setter ", sono metodi speciali che interagiscono con le variabili membro private . Funzione
getter e setter , o metodi " di accesso ", consentono di accedere alle proprietà di un oggetto . Un metodo get restituisce il valore di un immobile detenuto da un oggetto. Un metodo get ha un tipo di ritorno corrispondente al tipo della variabile membro associato. Metodi get in genere non accetta parametri . Un metodo set ha un " vuoto" tipo di ritorno e prende un parametro di tipo appropriato per assegnare alla variabile membro associato.
Convenzioni
Metodi di accesso sono utilizzati da oggetti esterni , e quindi sono dichiarati come ( visibile esternamente ) metodi "pubbliche" . La convenzione accettata è di nominare metodi get e set per la variabile membro associato ( per esempio , " getName " e " setName , " associata alla variabile "name" ) , con il prefisso "get" o "set ". Non tutte le variabili membro possono essere associati metodi di accesso . Questi metodi sono scritte solo per i valori che devono essere accessibili dall'esterno .
Scopo
Limitare l'accesso alle variabili membro di un oggetto è parte di una pratica chiamata " incapsulamento ". Encapsulation suddivide i componenti di un oggetto , nascondendo l'implementazione ( funzionamento interno ) dell'oggetto , che non hanno bisogno di essere visibile esternamente , e proteggere i dati interni di modificazione incontrollata . Metodi di accesso possono eseguire un calcolo, validazione , o altre azioni che potrebbero essere bypassato rendendo variabili membro direttamente accessibili .
Vantaggi
Protezione variabili membro utilizzando metodi di accesso consente ai programmatori di facilmente cambiare il codice interno senza cambiare il modo in cui la classe è utilizzata da altri. Questo evita la necessità di modificare il codice in tutta l'applicazione , quando una singola classe viene modificato . Getters possono eseguire i calcoli e le azioni necessarie per produrre un valore , riducendo al minimo la quantità di codice esterno necessario per utilizzare il valore . Setter possono eseguire la convalida , la prevenzione degli errori causati da variabili membro di essere impostati su valori non validi .
Considerazioni
Aggiunta metodi di accesso a una classe dovrebbe essere fatto conservativamente . Solo le variabili membro che richiedono l'accesso esterno devono avere metodi di accesso . Proprietà che possono essere modificati solo con il funzionamento interno non hanno bisogno di setter . Proprietà che non hanno alcuna rilevanza esterna non dovrebbe avere getter . Questa pratica riduce al minimo l'esposizione di realizzazione di un oggetto , e protegge oggetti di modifica che potrebbe introdurre errori di runtime . Il minor numero di metodi pubblici ci sono , il più mantenibile il codice sarà .