Bonsoir!
Après mes tentatives de suivre le niveau de la classe en cherchant comment instancier les classes internes, j'ai pris le partis de retourner vers les basiques que je ne maitrise pas forcément...
Je cherche à comprendre comment fonctionne le mot-clef static à l'aide du cours de jmdoudoux et le livre de Monsieur Eckel (si vous avez d'autres idées pour m'aider à progresser, je suis preneur!
Je ne comprends pas la dernière phrase même si elle est explicitée par la phrase au-dessus, auriez vous un exemple?
4.3.2. Le mot clé static
Le mot clé static s'applique aux variables et aux méthodes.
Les variables d'instance sont des variables propres à un objet. Il est possible de définir une variable de classe qui est partagée entre toutes les instances d'une même classe : elle n'existe donc qu'une seule fois en mémoire. Une telle variable permet de stocker une constante ou une valeur modifiée tour à tour par les instances de la classe. Elle se définit avec le mot clé static.
Il est aussi possible par exemple de mémoriser les valeurs min et max d'un ensemble d'objets de même classe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Exemple : public class Cercle { static float pi = 3.1416f; float rayon; public Cercle(float rayon) { this.rayon = rayon; } public float surface() { return rayon * rayon * pi;} }
Une méthode static est une méthode qui n'agit pas sur des variables d'instance mais uniquement sur des variables de classe. Ces méthodes peuvent être utilisées sans instancier un objet de la classe. Les méthodes ainsi définies peuvent être appelées avec la notation classe.methode() au lieu de objet.methode() : la première forme est fortement recommandée pour éviter toute confusion.
Il n'est pas possible d'appeler une méthode d'instance ou d'accéder à une variable d'instance à partir d'une méthode de classe statique.
Je n'ai pas bien compris pourquoi in écrit
et non pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part static float pid'accord, pour les instances cela permet de stocker une constante ou une valeur modifiée tour à tour par les instances de la classe. mais final aussi non?
Code : Sélectionner tout - Visualiser dans une fenêtre à part final float pi
Partager