2009-04-03 10 views

risposta

226

L'ambito predefinito è pacchetto-privato. Tutte le classi nello stesso pacchetto possono accedere al metodo/campo/classe. Il pacchetto-privato è più rigido degli ambiti protetti e pubblici, ma più permissivo dell'ambito privato.

Ulteriori informazioni:
http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
http://mindprod.com/jgloss/scope.html

+2

risposta molto migliore - @ joe - vai con questo, non il mio. –

+2

"L'impostazione predefinita del pacchetto è più rigida di ..." – reinaldoluckman

+6

Potrebbe anche essere opportuno ricordare che "pacchetto-privato" è un buon margine da utilizzare quando si espongono i metodi per il test dell'unità esterna. –

4

L'ambito predefinito è "predefinito". È strano - vedi thesereferences per maggiori informazioni.

+3

In realtà non lo è: è il pacchetto privato –

+0

THANK Maurice, ho aggiornato la mia risposta. –

+2

Non riesco a cancellare la mia risposta in quanto è stata accettata. Invito Joe ad andare con la risposta di @ Esko! –

17

Tutto definito come pacchetto privato può accedere dalla classe stessa, altre classi all'interno dello stesso pacchetto, ma non all'esterno del pacco, e non da sottoclassi .

Vedi this page per un tavolo a portata di mano di modificatori del livello di accesso ...

+0

Grazie per essere l'unico a riconoscere una fonte attendibile. –

7

Senza un modificatore di accesso, un membro della classe è accessibile in tutto il pacchetto in cui è dichiarata. Per ulteriori informazioni, consultare lo Java Language Specification, §6.6.

I membri di un'interfaccia sono sempre accessibili al pubblico, sia esplicitamente dichiarati che non.

+0

+1 per ulteriori informazioni sui membri di un'interfaccia. – Wazza

0

Java 8 ora consente l'attuazione di metodi all'interno di una stessa interfaccia con i predefinita portata (e statico solo).

Problemi correlati