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 :

Cannot make a static reference to the non-static method


Sujet :

Langage Java

  1. #1
    Membre habitué Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Points : 139
    Points
    139
    Par défaut Cannot make a static reference to the non-static method
    Bonjour,

    Je ne comprend pas pourquoi je dois mettre mes methodes en static
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        public static void main(String arg[]) 
        { 
            if(connexion()) 
               menu(); 
            deconnexion(); 
        }
     
    public boolean connexion(){...}
    public void deconnexion(){...}
    Exception in thread "main" java.lang.Error: Unresolved compilation problems:
    Cannot make a static reference to the non-static method connexion() from the type GestionVente
    Cannot make a static reference to the non-static method deconnexion() from the type GestionVente

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    La methode main est une methode static (non rattaché à une instance de la classe) et ne peut donc pas appeler de methodes non static (qui elle sont rattachées à une instance de la classe).
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre confirmé Avatar de Scorpyosis
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2004
    Messages : 365
    Points : 570
    Points
    570
    Par défaut
    Si tu ne veux pas que tes methodes soient static, il faut que tu face :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    GestionVente gv = new GestionVente() ;
    if( gv.connextion() )
          gv.menu();
        gv.deconnexion() ;
    Et puis ajoute des { } , ca sera plus lisible et ca t'évitera des erreurs
    Les deux principales inventions sorties de Berkeley sont UNIX et le LSD. Difficile de croire à une quelconque coïncidence - Jeremy S. Anderson

    Avant de vouloir qu’un logiciel soit réutilisable, il faudrait d’abord qu’il ait été utilisable - Ralph Johnson

  4. #4
    Membre éclairé Avatar de warwink
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 650
    Points : 823
    Points
    823
    Par défaut
    je vais tenter une réponse

    Je crois que en java, une méthode static ne peux pas accéder à des méthodes ou attribut non-statique sauf si c'est elle qui a créé l'objet contenant les méthodes ou attribut

    Edit: oula j'ai été lent

  5. #5
    Membre habitué Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Points : 139
    Points
    139
    Par défaut
    Je vous remercie

  6. #6
    Membre averti Avatar de Razgriz
    Profil pro
    Professeur / chercheur en informatique / mathématiques
    Inscrit en
    Avril 2006
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Professeur / chercheur en informatique / mathématiques

    Informations forums :
    Inscription : Avril 2006
    Messages : 391
    Points : 306
    Points
    306
    Par défaut
    Rq : les méthodes static ne peuvent ni accéder aux méthodes non-statiques, mais pas plus aux variables d'instances non statiques.

    Logique en soi : les méthodes statiques ne s'appliquant sur aucun objet, les méthodes et variables statiques n'ont aucun sens car elles s'appliqueraient sur un objet qui n'a pas été instancié.

    Voilà donc le noeud du problème...

    Rq : dès lors, on comprend tout de suite pourquoi la méthode main est static, en effet c'est la première instruction exécutée dans un programme, aucun objet sur laquelle l'appliquer n'a encore été créé. Pas cons les développeurs...
    On a toujours besoin d'un plus bourrin que soi

    Oui il y a quelques bugs dans ma librairie de Sécurité, mais les classes postées ne sont pas celles de la dernière version, et j'ai la flemme de tout modifier. Je vous donnerai avec plaisir la dernière version du jar par mp.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/01/2012, 14h53
  2. Réponses: 1
    Dernier message: 24/05/2011, 23h49
  3. Erreur "static reference to the non-static field"
    Par NetLandGim dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 04/04/2011, 00h55
  4. Cannot make a static reference to the non-static method readValues
    Par delta07 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 30/06/2010, 15h14
  5. Réponses: 5
    Dernier message: 18/05/2007, 12h30

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