web-dev-qa-db-fra.com

Quelle est la portée par défaut d'une méthode en Java?

Si je tape:

 void doThis(){
     System.out.println("Hello Stackoverflow.");
 }

quelle est la portée par défaut de doThis()?

Publique? Protégé? Privé?

154
Joe Fontana

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

Plus d'information:
http://docs.Oracle.com/javase/tutorial/Java/javaOO/accesscontrol.html
http://mindprod.com/jgloss/scope.html

250
Esko Luontola

Tout ce qui est défini comme paquet privé est accessible à la classe elle-même, aux autres classes du même paquet, mais pas à l'extérieur du paquet, ni aux sous-classes.

Voir cette page pour un tableau pratique des modificateurs de niveau d'accès ...

19
user15299

Sans modificateur d'accès, un membre de classe est accessible dans l'ensemble du package dans lequel il est déclaré. Vous pouvez en apprendre davantage à partir de spécification de langage Java, §6.6.

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

9
erickson

La portée par défaut est "default". C'est bizarre - voir ceux-ciréférences pour plus d'informations.

5
Michael Haren

Java 8 permet maintenant l’implémentation de méthodes dans une interface elle-même avec valeur par défaut scope (et statique uniquement).

1
shiv

Si vous ne donnez aucun modificateur à votre méthode, alors par défaut, ce sera le modificateur Par défaut qui aura une portée dans le package.
pour plus d'informations, vous pouvez vous référer http://wiki.answers.com/Q/What_is_default_access_specifier_in_Java

0
user1011455