IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Méthode static en Java


Sujet :

Langage Java

  1. #1
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 432
    Par défaut Méthode static en Java
    Bonjour,
    lorsqu'on déclare une méthode static, est-ce que les variables de la méthode sont forcément static ?
    Merci d'avance.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Euh non, les variables d'une méthode sont toujours des variables locales.

    Il y a bien des langages qui permettent de faire des variables static dans les méthodes (mais Java n'en est pas un,) mais ça n'aurait aucun sens de le faire en fonction de ce que la méthode soit static ou pas, c'est complètement deux choses différentes.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 432
    Par défaut
    en fait je voulais dire ca plutot Une méthode statique ne peut pas utiliser de méthodes non statiques.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Quelque soit le contexte (static ou pas), on peut invoquer une méthode non static (ou accéder à un attribut non static) dès lors qu'on a une instance et que la méthode (ou l'attribut) sont visible dans la portée de ce contexte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class Exemple {
       private int var1;
       public int var2;
     
       public int getVar1() {
               return var1;
       }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public static void uneMethodeStatic(Exemple parametre, List<Exemple> list) {
     
             System.out.println( parametre.getVar1() ); // appel d'une méthode non statique
             System.out.println( parametre.var2 ); // accès à un attribut non statique
     
             for(Exemple object : list) {
                       System.out.println( object.getVar1() ); // appel d'une méthode non statique
                       System.out.println( object.var2 ); // accès à un attribut non statique
             }
     
              Exemple variableLocale = new Exemple();
              System.out.println( variableLocale.getVar1() ); // appel d'une méthode non statique
              System.out.println( variableLocale.var2 ); // accès à un attribut non statique
     
     
    }
    En revanche, si tu parles d'accéder aux attributs ou méthodes non statiques de la classe à laquelle appartient la méthode statique, non, pour la même raison en fait : la méthode statique appartenant à la classe, elle n'est pas liée à une instance particulière, donc pas d'instance, donc pas d'accès aux méthodes non statiques (ou attributs non statiques).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class Exemple {
     
       private int var;
     
       public static void methodeStatic() {
              System.out.println(var); // impossible : ça ne compile pas, parce que var n'est accessible que par une instance, et il n'y en a pas ici.
       }
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class Exemple {
     
       private int var;
     
       public static void methodeStatic() {
              Exemple exemple = new Exemple();
              System.out.println(exemple.var); // possible : parce que var est accédée par une instance.
       }
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Reflection java sur une méthode static
    Par Proxy dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 01/03/2012, 15h47
  2. Réponses: 9
    Dernier message: 12/04/2007, 17h08
  3. [Java] méthode static et passage de paramètre
    Par tomburn dans le forum Langage
    Réponses: 10
    Dernier message: 11/05/2005, 16h19
  4. [debutant] Méthode static
    Par iago dans le forum Langage
    Réponses: 12
    Dernier message: 25/11/2004, 17h09
  5. thread et méthodes static
    Par sylpichard dans le forum MFC
    Réponses: 3
    Dernier message: 02/06/2004, 17h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo