2009-04-03 7 views

Répondre

226

La portée par défaut est package-private. Toutes les classes d'un même package peuvent accéder à la méthode/champ/classe. Package-private est plus strict que les étendues publiques et protégées, mais plus permissif que la portée privée.

Plus d'informations:
http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
http://mindprod.com/jgloss/scope.html

+2

bien meilleure réponse - @ Joe - aller avec celui-ci, pas le mien. –

+2

"Package-default est plus strict que ..." – reinaldoluckman

+6

Il peut également être utile de mentionner que "package-private" est un bon champ d'application pour exposer des méthodes de test d'unités externes. –

4

La portée par défaut est "par défaut". C'est bizarre - voir thesereferences pour plus d'informations.

+3

En fait ce n'est pas: c'est paquet-privé –

+0

Merci Maurice, j'ai mis à jour ma réponse. –

+2

Je ne peux pas supprimer ma réponse car elle a été acceptée. J'encourage Joe à aller avec la réponse @ Esko! –

17

Tout défini comme privé est accessible paquet par la classe elle-même, d'autres classes dans le même paquet, mais pas à l'extérieur de l'emballage, et non par des sous-classes .

Voir this page pour une table pratique de modificateurs de niveau d'accès ...

+0

Merci d'être le seul à reconnaître une source fiable. –

7

Sans un modificateur d'accès, un membre de la classe est accessible dans tout l'emballage dans lequel il est déclaré. Vous pouvez en apprendre plus à partir du Java Language Specification, §6.6.

Les membres d'une interface sont toujours accessibles au public, qu'ils soient déclarés explicitement ou non.

+0

+1 pour plus d'informations sur les membres d'une interface. – Wazza

0

Java 8 permet désormais la mise en œuvre de méthodes à l'intérieur d'une même interface avec portée par défaut (et statique uniquement).

Questions connexes