2015-09-08 1 views
3

Hé les gars, j'apprends Java et il y a quelque chose qui m'ennuie et le manuel ne l'explique pas. Je comprends que vous utilisez des modificateurs pour déclarer des méthodes dans les classes et tout. Mais je suis soudain arrivé à une classe déclarée commeOmettre le modificateur public dans les méthodes java

static void(){ 
} 

Pourquoi n'y a-t-il pas de modificateur public ou privé et ça marche toujours? Puis-je éviter d'utiliser le modificateur public partout ailleurs ou comment cela fonctionne-t-il? Je comprends que statique signifie membre de la classe et annule qu'il ne renvoie pas une valeur. Pourtant pourquoi pas public ou privé d'ailleurs.

Merci

+2

On dirait que cela a été traité de manière approfondie @ [En Java, quelle est la différence entre public, par défaut, protégé et privé?] (Http://stackoverflow.com/questions/215497/in-java-whats-the -différence-entre-public-par défaut-protégé-et-privé) – CollinD

+0

Voir doc java https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html – Bikku

+0

Quand vous voyez modificateur _no_ devant un méthode ou variable dans une classe, cela signifie que le niveau d'accès par défaut à quelque chose appelé «paquet privé». C'est plus restreint que 'protected', mais moins restreint que' private'. Voici un [link] (https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html) au tableau officiel d'Oracle le montrant. –

Répondre

3

Par souci de cette explication, les termes « fonctions » et « méthodes » sont utilisés de manière interchangeable. Il y a une petite différence entre eux, pour plus d'informations, demandez à Google.

méthodes Java qui ne spécifient pas explicitement un modificateur sont par défaut package-privé, la méthode est visible à toutes les classes dans le même paquet que la classe où la méthode est déclarée.

publiques fonctions sont appelables par toutes les classes qui ont accès à la classe (c.-à-tout votre projet) et privés méthodes ne sont appelables dans la classe la méthode a été écrite. Il y a aussi le modificateur protégé , qui spécifie que les fonctions ne sont accessibles que par la classe, toutes ses sous-classes et classes dans le même paquet.

"Pourquoi est-ce important?", vous pouvez demander. Bonne question! Vous devez utiliser des modificateurs pour masquer les méthodes/propriétés d'autres classes qui peuvent les ab (ou les utiliser) ou dans le pire des cas pourraient conduire à un comportement inattendu (pas nécessairement techniquement, mais sémantiquement ... certaines méthodes ont juste besoin d'un peu plus la vie privée comme nous le faisons). Donc, un bon endroit pour commencer est privé, ce qui signifie que seule la classe dans laquelle il est déclaré est capable de l'appeler. Plus souvent qu'autrement, vous devrez donner accès aux méthodes aux autres classes, c'est pourquoi le paquet-privé, protégé et modificateurs publics existent.

L'encapsulation de données est un paradigme important dans la programmation, et ces modificateurs vous aident à atteindre cet objectif.