Si je tape:
void doThis(){
System.out.println("Hello Stackoverflow.");
}
quelle est la portée par défaut de doThis()
?
Publique? Protégé? Privé?
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 protégées et publiques, mais plus permissive que l'étendue privée.
Plus d'informations:
http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
http://mindprod.com/jgloss/scope.html
Tout ce qui est défini comme package private peut être accédé par la classe elle-même, d'autres classes dans le même package, mais pas en dehors du package, et pas par des sous-classes.
Voir cette page pour un tableau pratique des modificateurs de niveau d'accès ...
la source
Sans un modificateur d'accès, un membre de classe est accessible dans tout le package dans lequel il est déclaré. Pour en savoir plus , consultez la spécification du langage Java, §6.6.
Les membres d'une interface sont toujours accessibles au public, qu'ils soient explicitement déclarés ou non.
la source
La portée par défaut est "par défaut". C'est bizarre - voir ces références pour plus d'informations.
la source
Java 8 permet désormais l'implémentation de méthodes dans une interface elle-même avec une portée par défaut (et statique uniquement).
la source
Si vous ne donnez aucun modificateur à votre méthode, par défaut, ce sera le modificateur par défaut qui a une portée dans le package.
pour plus d'informations, vous pouvez consulter http://wiki.answers.com/Q/What_is_default_access_specifier_in_Java
la source