Cos'è un metodo privato in Java?
È una funzione o procedura privata in una classe a cui non si può accedere da nessun'altra classe, nemmeno dalle sottoclassi.
Per esempio, a seconda del JDK che stai usando, String potrebbe avere una funzione statica privata chiamata upperCaseExpansion(). Questa è usata da toUpperCase(), sempre in String.
Ma se provate a chiamare String.upperCaseExpansion() dalla vostra classe, è un errore del compilatore. Anche se sottoclassate String (cosa che non potete fare, perché è una classe finale) non potete comunque chiamare String.upperCaseExpansion().
Le funzioni private sono un ottimo modo per spezzare funzioni pubbliche troppo lunghe ed evitare la "duplicazione del codice"
E inoltre vi danno la libertà di cambiare il funzionamento interno delle classi che scrivete senza preoccuparvi che le vostre modifiche possano influenzare i programmatori che usano le vostre classi. Nel caso di String.upperCaseExpansion(), un autore JDK ha la libertà di implementare toUpperCase() senza usare String.upperCaseExpansion().
Non riesco a pensare ad un buon esempio di una funzione di istanza privata, e sono poco incline a fare un esempio giocattolo.
I costruttori possono anche essere privati, permettendovi di limitare come gli oggetti vengono istanziati. Vedere java.util.{Currency, Locale} per due esempi.
A proposito, Scala ha un modificatore di accesso ancora più restrittivo, private[this], che significa che le istanze della stessa classe non possono accedere ai campi o alle funzioni degli altri che sono così contrassegnati. Questo è probabilmente solo privato per quanto riguarda la JVM.
Articoli simili
- Come si chiama un metodo principale in un altro metodo principale di classe in Java?
- Come possiamo chiamare il metodo service dal metodo doGet o doPost nella servlet?
- Ci sarà mai un metodo migliore dell'emulazione per conservare i videogiochi? Questo metodo potrebbe essere legale?
- Qual è l'uso del metodo Thread.sleep() in Java?