Portée par défaut en java

Comme vos applications Java deviennent plus complexes, la nécessité d'examiner la portée devient de plus en plus importante. La raison principale est que vous pouvez par inadvertance introduire un bug dans votre application en ne respectant pas les règles de portée.

Cela peut résulter d'un champ ou un autre membre étant mal utilisés par l'application (comme l'ajout d'une valeur de données incorrecte ou d'accéder à une méthode au mauvais moment ou avec des données erronées). En outre, portée incorrecte peut laisser la porte ouverte pour les étrangers d'interagir avec votre application de façon imprévue (comme un virus).

La portée par défaut se produit lorsque vous ne donnez pas spécifiquement un champ à un élément de classe. Parce que beaucoup de développeurs Java ont aucune idée de ce que le champ d'application par défaut est pour certains éléments (et en utilisant un champ par défaut signifie que votre code est pas documenté), il n'a pas utilisé très souvent.

Malgré cela, vous avez besoin de savoir quelle est la portée par défaut est pour divers éléments car certains développeurs Java ne reposent sur elle. Cependant, avant de pouvoir comprendre la portée par défaut, vous devez tenir compte visibilité - la mesure de laquelle les éléments d'application peuvent voir un membre. Java fournit les niveaux de visibilité suivants (dans l'ordre général de l'encapsulation):




  • Package: Le récipient utilisé pour contenir un certain nombre de classes. Lorsque vous travaillez avec une structure de répertoire simple, comme les exemples de ce livre font, le paquet est un répertoire qui contient un certain nombre de fichiers .class.

  • Classe: Une classe réside habituellement dans un fichier .java unique qui vous compilez dans un fichier .class. Il contient une déclaration de classe unique.

  • Méthode: Un élément peut résider dans la classe ou dans le cadre d'un procédé. La méthode agit comme un conteneur pour maintenir l'élément.

  • Bloc: Un élément peut résider dans un bloc de code, tel que pour une boucle.

Portée dépend en partie de l'emplacement utilisé pour déclarer un élément. Par exemple, une variable qui est définie à l'intérieur d'un bloc (comme une boucle) est visible à l'intérieur de ce bloc. Lorsque vous essayez d'utiliser la variable en dehors du bloc, Java affiche une exception. Prenant en compte la visibilité, ce tableau décrit les différents niveaux de portée dans l'environnement Java.

Règles scoping Java
Visibilitéprivé(par défaut)protégépublic
Accessible à partir de la classeXXXX
Accessible à partir de l'emballageXXX
Accessible à partir de n'importe quel classe enfantXX
Accessible partoutX

Le tableau montre comment la portée par défaut inscrit dans l'ordre des choses. Par exemple, si vous déclarez une méthode en utilisant l'étendue par défaut, toute méthode peut l'utiliser aussi longtemps qu'il réside dans le même paquet. En outre, si vous créez une classe qui hérite de la classe contenant la méthode, la sous-classe peut utiliser la méthode tant qu'il réside dans le même paquet.

Toutefois, si la sous-classe existe en dehors du paquet actuel, il ne peut pas utiliser la méthode. En bref, la portée par défaut est un peu plus restrictive que la portée protégée, mais moins restrictive que la portée privé.


» » » » Portée par défaut en java