Les modificateurs de Java

Voici quelques faits amusants sur modificateurs Java utilisés dans les programmes Java comme concevoir les applications Android. Le mot finale a de nombreux usages dans les programmes Java. En plus d'avoir des variables finales, vous pouvez avoir ces éléments:

  • Classe finale: Si vous déclarez une classe d'être finale, aucune personne (pas même vous) peut l'étendre.

  • Méthode finale: Si vous déclarez une méthode pour être finale, aucune personne (pas même vous) peut remplacer.

Ces chiffres mettent ces règles en perspective. Ils montrent que vous ne pouvez pas prolonger la Truc classe, parce que la Truc classe est finale. Et, vous ne pouvez pas remplacer le Truc La classe de incrément Procédé parce que incrément méthode est finale.

Essayer d'étendre une classe final.
Essayer d'étendre une classe final.
Essayer de redéfinir une méthode finale.
Essayer de redéfinir une méthode finale.

Vous pouvez appliquer de Java protégé mot-clé pour les membres d'une classe. Ce protégé mot-clé a toujours semblé un peu étrange pour certains. Dans l'usage commun anglais, où vos biens sont «protégés», vos possessions ne sont pas aussi disponibles comme ils l'avaient normalement être.




Mais en Java, lorsque vous préfacer un champ ou une méthode avec le protégé mot-clé, vous faites ce champ ou une méthode un peu plus disponible que ce serait par défaut, comme indiqué dans la figure.

Les modes d'accès pour les champs et les méthodes.
Les modes d'accès pour les champs et les méthodes.

Un membre d'une classe (un membre par défaut dont la déclaration ne contient pas les mots public, privé, ou protégé) Peut être utilisé par n'importe quel code à l'intérieur du même paquet que cette classe.

La même chose est vraie au sujet d'un protégé membre de la classe. Mais en outre, un protégé membre est hérité à l'extérieur du paquet de la classe par une sous-classe de la classe contenant que membre protégé.

Hein? Qu'est-ce que cette dernière phrase signifie, à propos de protégé membres? Pour rendre les choses concrètes, ce chiffre montre l'existence insouciante dans laquelle deux classes sont dans le même paquet. Avec les deux Truc et Mes affaires dans le même emballage, la Mes affaires classe hérite de la Truc le défaut de la classe valeur variable et la Truc le défaut de la classe incrément Procédé.

Deux classes du même package.
Deux classes du même package.

Si vous déplacez le Truc classe à un package différent, Mes affaires plus hérite le Truc le défaut de la classe valeur variable ou la Truc le défaut de la classe incrément méthode, comme montré ici.

Classes dans différents forfaits.
Classes dans différents forfaits.

Mais si vous tournez valeur dans une protégé variable et vous tournez incrément dans une protégé Procédé, le Mes affaires classe hérite à nouveau sa classe parent de valeur variable et incrément méthode, comme montré ici.

Utilisation du modificateur protégé.
Utilisation du modificateur protégé.

Un préavis d'un plus en détail dans les chiffres. La Mes affaires La classe de incrément méthode a été changé de défaut public. Cela a été fait pour éviter de voir un petit message d'erreur intéressant. Vous ne pouvez pas remplacer une méthode avec une autre méthode dont l'accès est plus restrictive que la méthode originale. En d'autres termes, vous ne pouvez pas remplacer une méthode publique avec une méthode privée. Vous ne pouvez même pas remplacer une méthode publique avec une méthode par défaut.

L'accès par défaut de Java est plus restrictive que l'accès protégé, comme le montre cette figure. Donc, vous ne pouvez pas remplacer une méthode protégée avec une méthode par défaut.

image6.jpg

Dans cet exemple, toute la question a été évitée en rendant public le Mes affaires La classe de incrément Procédé. De cette façon, la incrément méthode avec le genre moins restrictive de l'accès a été annulé.


» » » » Les modificateurs de Java