« Programmation Java/Modificateur » : différence entre les versions

Contenu supprimé Contenu ajouté
Ftiercel (discussion | contributions)
Ajout de la définition de strictfp et volatile
Ligne 5 :
En Java, la déclaration d'une classe, d'une méthode ou d'un membre peut être précédée par un modificateur d'accès.
 
Un modificateur indique si les autres classes de l'application pourront accèderaccéder ou non à la classe / méthode / membre.
 
Ces modificateurs sont au nombre de troisquatre :
 
* ''public'' : Toutes les classes peuvent accèderaccéder à l'item
* ''protected'' : Seules les classes dérivées et les classes du même package pourront accèderaccéder à l'item
* ''private'' : L'item sera seulement accessible depuis l'interieurintérieur de la classe où il est défini.
Si* aucun(par modificateurdéfaut) d'accès: n'est précisé, lL'item sera visible par les classes du même package que l'item.
 
L'utilisation des modificateurs permet au programmeur de contrôler la visibiltévisibilité des différents items et permet d'empêcher que des actions illégales soient effectuées sur les items.
 
Si aucun modificateur d'accès n'est précisé, l'item sera visible par les classes du même package que l'item.
 
== abstract ==
Ligne 30 ⟶ 29 :
 
Devant une classe, il indique que cette classe ne peut pas avoir de sous-classe.
 
== native ==
 
Ce modificateur permet d'indiquer que cet item est défini dans une librairie extérieure écrite dans un autre langage de programmation et accessible par JNI.
 
== static ==
 
Le modificateur static indique, pour une méthode, qu'elle peut être appelléeappelée sans instancier sa classe (syntaxe : Classe.methode()).
 
Pour un attribut, qu'il s'agit d'un attribut de classe, et que sa valeur est donc partagée entre les différentes instances de sa classe.
Ligne 43 ⟶ 38 :
De plus, il est possible de déclarer dans une classe un bloc d'initialisation statique, qui est un bloc d'instruction précédé du modificateur <tt>static</tt>.
 
== synchronized ==
 
Un bloc de code précédé du modificateur <tt>synchronized</tt> ne peut être exécuté en même temps par deux threads ; cela équivaut à placer un verrou.
== strictfp ==
 
== transient ==
 
Le modificateur "<tt>transient"</tt> indique que lors de la serialisationsérialisation de l'objet, cet attribut ne doit pas être sérialisé et donc il doit être ignoré. Cela signifie que lorsque l'on désérialise l'objet, l'attribut portant le modificateur transient n'est pas défini dans l'objet déserialisé.
 
== synchronizednative ==
 
Ce modificateur permet d'indiquer que cet item est défini dans une librairie extérieure écrite dans un autre langage de programmation et accessible par JNI.
Un bloc de code précédé du modificateur synchronized ne peut être exécuté en même temps par deux threads ; cela équivaut à placer un verrou.
 
== transientstrictfp ==
 
Le modificateur "transient" indique que lors de la serialisation de l'objet, cet attribut ne doit pas être sérialisé et donc il doit être ignoré. Cela signifie que lorsque l'on désérialise l'objet, l'attribut portant le modificateur transient n'est pas défini dans l'objet déserialisé.
Pour une méthode, une classe ou une interface, le modificateur <tt>strictfp</tt> (abréviation de ''strict floating point'') force la JVM à évaluer les opérations à virgules flottantes (sur les <tt>double</tt> et <tt>float</tt>) conformément à la spécification Java, c'est-à-dire de la gauche vers la droite. Cela permet d'avoir un comportement identique d'une JVM à une autre et d'éviter certains dépassements de valeur limite pour les résultats intermédiaires.
 
== volatile ==
 
Pour une variable, le modificateur <tt>volatile</tt> force la JVM avant et après chaque utilisation de la variable à la rafraichir à partir de la mémoire principale au lieu d'utiliser un cache local. Cela permet de synchroniser la valeur de la variable entre plusieurs threads.
 
[[Catégorie:Programmation Java (livre)]]