Se invece di:Cosa sono le variabili senza pubblico privato o protetto dichiarato come?
private JButton theButton;
faccio:
JButton theButton;
Qual è la differenza?
Grazie
Se invece di:Cosa sono le variabili senza pubblico privato o protetto dichiarato come?
private JButton theButton;
faccio:
JButton theButton;
Qual è la differenza?
Grazie
pacchetto. Sono visibili ad altre classi nello stesso pacchetto.
FWIW, di solito uso la mia annotazione no-op @Package su questi, solo per chiarire che so cosa sto facendo - che non ho dimenticato qualcosa. Anche se è l'impostazione predefinita, l'accesso al pacchetto è probabilmente usato meno in codice di alta qualità rispetto a qualsiasi altra delle tre possibilità - con una grande eccezione:
In alcuni stili di test delle unità, è consigliabile poter accedere a metodi o campi che sono normalmente privati. Un modo per fornire l'accesso è impostarli sull'accesso al pacchetto e inserire la classe di test dell'unità nello stesso pacchetto (ma di solito in un diverso albero di directory "test"). Alcuni sviluppatori pensano che questa sia una cattiva pratica - che in generale, è male usare i metodi privati (o package-for-testing) nei test.
In Java ci sono visibilità pubblica, protetta, di pacchetto (predefinita) e privata; ordinato dal più visibile al minimo.
Se non lo si specifica, per impostazione predefinita la visibilità è pacchetto.
package mytest.myvisibility;
public class MyClass
{
public int myPublicInt; // visible to all
protected myProtectedInt; // visible to subclasses of MyClass and to other members of the mytest.myvisibility package
int myPackageInt; // visible only to other members of the mytest.myvisibility package
private int myPrivateInt; // visible only to MyClass objects.
}
Questo non è esattamente vero (vedi Oracle doc fornito da @LukeH sopra). Gli articoli protetti sono anche visibili nel pacchetto corrente. – Kloe2378231
aggiornato - elaborato sulla visibilità del "pacchetto" e reso l'ordine di visibilità coerente nella descrizione e nel codice di esempio. –
http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html – LukeH