public
et package
.public
permet à une classe d'être visible dans tout le code sans aucune restriction.public
, de l'instancier, et de la spécialiser (héritage).package
permet à une classe d'être visible à l'intérieur de son package uniquement.package
.abstract
:final
.final
:final
empêche une classe d'être héritée, ce qui veut dire que son comportement ne peut être modifié.final
ne peut pas utiliser le modificateur abstract
.Les classes (externes) ne peuvent pas être private
.
Vous obtiendrez une erreur de compilation si vous marquez une classe private
.
public
et package
.public
permet à une interface d'être visible dans tout le code sans aucune restriction.public
et de la spécialiser (héritage).package
permet à une interface d'être visible à l'intérieur de son package uniquement.package
.abstract
:abstract
.Les interfaces ne peuvent pas être private
.
Vous obtiendrez une erreur de compilation si vous marquez une interface private
.
Les interfaces ne peuvent pas être final
.
Vous obtiendrez une erreur de compilation si vous marquez une interface final
.
Les variables des interfaces sont implicitement public
, static
, et final
.
Ce qui veut dire, qu'il n'est pas nécessaire d'utiliser ces modificateurs pour la déclaration des variables des interfaces.
Mais il est interdit d'utiliser un autre modificateur.
Les méthodes des interfaces sont implicitement public
et abstract
.
Ce qui veut dire, qu'il n'est pas nécessaire d'utiliser ces modificateurs pour la déclaration des méthodes des interfaces.
Mais il est interdit d'utiliser un autre modificateur.
public
, private
, protected
, et package
.public
permet à une méthode d'être accessible dans tout le code sans aucune restriction (à condition que la classe qui la déclare est visible elle aussi).private
permet à une méthode d'être accessible uniquement dans le code de la classe qui la déclare.private
n'empêche pas une sous-classe de déclarer une méthode avec exactement la même signature, dans ce cas, on ne parle pas de redéfinition de la méthode (héritage)
mais plutôt d'une nouvelle définition de la méthode puisque celle de la superclasse est non visible pour la sous-classe.protected
permet à une méthode d'être visible à l'intérieur du package de la classe qui la déclare.package
permet à une méthode d'être visible uniquement à l'intérieur du package de la classe qui la déclare.package
.T
qui déclare des méthodes avec les modificateurs d'accès
public
,
private
,
protected
,
et package
) :Visibilité des méthodes de la classe T |
public |
private |
protected |
package |
---|---|---|---|---|
Dans le code de la classe T |
Oui | Oui | Oui | Oui |
Dans le code de n'importe quelle classe (autre que la classe T ) appartenant au même package de la classe T |
Oui | Non | Oui | Oui |
Dans le code de n'importe quelle classe (pas sous-classe) appartenant à un package différent de celui de la classe T |
Oui | Non | Non | Non |
Dans le code de n'importe quelle sous-classe appartenant au même package de la classe T |
Oui | Non | Oui | Oui |
Dans le code de n'importe quelle sous-classe appartenant à un package différent de celui de la classe T |
Oui | Non | Oui | Non |
static
:abstract
:public
, protected
, et package
.final
, private
, et static
.final
:final
empêche une méthode d'être redéfinit ; ce qui veut dire que son comportement ne peut être modifié (héritage).synchronized
:synchronized
permet à une méthode d'être exécuter par un seul thread à la fois.strictfp
:strictfp
permet à une méthode d'être conforme avec le standard concernant la gestion des nombres réels.strictfp
to enforce that all instructions (within a method or a class) use the strict floating point computations.StrictMath
(instead of Math
)
if results are expected to be the same regardless of the processor used to execute the mathematical functions
(this might have an impact on performance though).native
:native
indique que la méthode est implémenter dans un autre langage (exemple C++).final
uniquement.public
, private
, protected
, et package
.public
permet à une variable d'être accessible dans tout le code sans aucune restriction, du moment où la classe qui la déclare est visible elle aussi.private
permet à une variable d'être accessible uniquement dans le code de la classe qui la déclare.protected
permet à une variable d'être visible à l'intérieur du package de la classe qui la déclare.package
permet à une variable d'être visible uniquement à l'intérieur du package de la classe qui la déclare.package
.static
:static
implique que la variable aura une seule copie (classe copie) qui sera partagée par toutes les instances de la classe.final
:final
empêche la modification de la référence contenue dans une variable
(s'applique aux variables de classe, variables de d'instance, variables locales des méthodes, et paramètres de méthodes).transient
:transient
indique que la variable ne doit pas être prise en compte lors de la sérialisation de l'objet qui définit cette variable.volatile
:volatile
permet aux threads de voir la dernière valeur modifiée de la variable
(une sorte de synchronisation sans la charge supplémentaire du verrouillage).