Static ?

Résolu
chocobarbe Messages postés 32 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 5 février 2010 - 11 janv. 2008 à 10:42
chocobarbe Messages postés 32 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 5 février 2010 - 15 janv. 2008 à 15:49
Bonjour à tous !

Voila, je prends des leçon de Java, pour me rafraichir la mémoire (puisque j'y ai un peu touché pendant mes études) et je ne comprend pas comment utiliser le mot static, ni à quoi il sert, que ce soit dans public static void main(String[] args), ou dans une déclaration de variable.

Quelqu'un pourrait m'expliquer avec quelque exemple svp ?

Merci d'avance !
A voir également:

5 réponses

KenZara Messages postés 112 Date d'inscription vendredi 24 décembre 2004 Statut Membre Dernière intervention 20 décembre 2011
14 janv. 2008 à 11:12
    Bonjour,

Pour mieux t'expliquer ce qu'est une méthode statique, faisons simple.
Imaginons que tu as la classe JechercheàComprendre, qui a une variable déclarée comme suit:
static boolean compris = false;
Et que je veux avoir une méthode qui permet de modifier cette variable là.
Dans ce cas je ferais un:
static void modifierMafacondevoir (boolean mafacondevoir){
compris = mafacondevoir;
}

(Je caricaturise pour les noms de classe). Bref, cette méthode là (modifiermafacondevoir) ne peut être appeler par aucune instance de la classe JechercheàComprendre.
Tu ne peux donc pas faire un truc du style JechercheàComprendre moi = new JechercheàComprendre(); et de faire ensuite moi.modifiermafacondevoir();
Mais pour pouvoir modifier ou accéder à cette méthode, il faut faire un truc du genre:
JechercheàComprendre.modifiermafacondevoir(true);
En gros tu peux dire que la méthode est globale pour la classe.

Supposons que ma méthode n'est pas statique, dans ce cas tu ne peux en aucun cas l'appeler de la sorte: JechercheàComprendre.modifiermafacondevoir(true); mais il faudra l'appeler pour chaque objet de ta classe.

Un autre exemple, dans Java, tu as des classes style Math :) ... Pour pouvoir utiliser les méthodes de cette classe, tu n'as aucunement besoin de créer une instance de cette classe puisque la méthode statique appartient à la classe elle-même.

Note: Les méthodes statiques ne peuvent pas accéder aux variables non statiques, ce qui est normal vu que la méthode est appelée par la classe elle même et non l'instance.

Kenza
3
plop3000 Messages postés 135 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 7 avril 2012 1
11 janv. 2008 à 14:19
Bonjour,
Une méthode static est une méthode qui n'est pas rattachée à un unique objet. Imaginons un objet Personne. Soit deux objets de cette classe créée comme ceci : Personne pers1 new Personne() et Personne pers2 new Personne();
Si tu as une méthode xxx() qui est défini en static dans la classe Personne, tu ne peut pas faire quelquechose du genre pers1.xxx(). En effet la méthode est globale et non pas définie  pour une instance précise de l'Objet Personne.

Pour un attribut static c'est un peut la meme logique. Si tu déclare ceci : private int plusVieillePersonne (dans la classe Personne toujours)
Alors tout les objets que tu créeras par la suite (ex : pers1 et pers2) auront accès à cette variable, dans le sens où si pers1 modifie la valeur de plusVieillePersonne alors elle sera modifiée aussi pour pers alors que pers2 n'a rien demandé. Bref, un attribut static est un attribut qui peut être partgé par plusieurs objet de la même classe

Remarque : ainsi pour accéder à la variable plusVieillePersonne, il faudra faire "Personne.plusVieillePersonne et non pas pers1.plusVieillePersonne.

Voila, j'espère ne pas avoir dit de bêtises (corrigez si nécessaire bien sûr)
0
KenZara Messages postés 112 Date d'inscription vendredi 24 décembre 2004 Statut Membre Dernière intervention 20 décembre 2011
11 janv. 2008 à 14:44
Bonjour,

Concernant le mot static, c'est un mot clé qui désigne que ta variable n'est pas spécifique à un objet mais à toute ta classe par exemple, supposons que tu as une classe Toto et que tu as créé deux instances de cette classe donc:
Toto a;
Toto b;
Et que tu as une variable déclarée en static (par exemple static string jesuisstatic).
Le fait de faire a.jesuisstatic = "Yes!" va automatiquement se voir chez "b"
donc un System.out.println(b.jesuisstatic); va te renvoyer: Yes!
Concernant les méthodes static, ils permettent d'agir (modifer/accéder) au variable de la classe.

Voili voilou :)
Kenza
0
chocobarbe Messages postés 32 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 5 février 2010 1
14 janv. 2008 à 09:33
Bien bien bien !

J'ai compris pour une variable déclarer en static. Elle est modifiable pour toutes les méthode de la meme classe.

Mais j'ai un peu de difficulté pour comprendre le static dans une methode, pourriez vous me donner un exemple supplémentaire s'il vous plait.

Merci !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chocobarbe Messages postés 32 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 5 février 2010 1
15 janv. 2008 à 15:49
Merci les p'ti loup !
0
Rejoignez-nous