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

Java Discussion :

error non static method


Sujet :

Java

  1. #1
    Membre confirmé Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Points : 491
    Points
    491
    Par défaut error non static method
    Bonjour à tous,

    J'aurais besoin que quelqu'un jette un rapide coup d'oeil sur mon code, j'ai l'impression de bien faire mais j'ai cette erreur qui survient chaque fois que j'éssais de faire des méthodes dans ma classe contenant mon main affin de les appeller dans mon main. j'ai pourtant l'impression de bien faire, je tourne vraiment en rond. Après avoir fini de développer mes classes j'en suis à ma classe contenant mon main, l'erreur survient quand j'appelle la méthode creatQueues() :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    import java.util.*;
    import java.io.*;
     
    public class Assignement_1_1
    {
    	public static void main(String[] args)
        {
        	Queues aQueues = creatQueues();
        }
     
        public Queues creatQueues()
        {
        	//creation of the list of queues which will contains all queues (Queu object)
        	Queues aQueues = new Queues();
     
        	//creation of each queue (Queu object)
        	aQueues.addQueue("Queue1");
        	aQueues.addQueue("Queue2");
        	aQueues.addQueue("Queue3");
        	aQueues.addQueue("Queue4");
     
        	//Test for see if queues are creat correctly
        	int size = aQueues.getSize();
        	System.out.println("Number of Queues : "+size);
     
        	return aQueues;
        }
    }

  2. #2
    Membre confirmé Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Points : 491
    Points
    491
    Par défaut
    j'ai trouvé, ba en fait il se pourrait que je n'avais jamais compris l'utilité de préciser quand une méthode est static ou non, je devais donc préciser que creatQueues() était une méthode static, c'est à dire qu'elle ne fait pas appelle à une méthode située dans une autre classe.

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    import java.util.*;
    import java.io.*;
     
    public class Assignement_1_1
    {
    	public static void main(String[] args)
        {
        	Queues aQueues = creatQueues();
        }
     
        public static Queues creatQueues()
        {
        	//creation of the list of queues which will contains all queues (Queu object)
        	Queues aQueues = new Queues();
     
        	//creation of each queue (Queu object)
        	aQueues.addQueue("Queue1");
        	aQueues.addQueue("Queue2");
        	aQueues.addQueue("Queue3");
        	aQueues.addQueue("Queue4");
     
        	//Test for see if queues are creat correctly
        	int size = aQueues.getSize();
        	System.out.println("Number of Queues : "+size);
     
        	return aQueues;
        }
    }

  3. #3
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Cela devrait t'intéresser : Que signifie le mot-clé static ?

    En déclarant creatQueues public static, elle pourra être appelée depuis n'importe où dans ton programme, quelque soit le contexte.

    Pour l'utiliser dans un contexte non static, tu aurais pu l'utiliser comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static void main(String[] args)
    {
        Queues aQueues = new Assignement_1_1().creatQueues();
    }
     
    public Queues creatQueues()
    {
        //...
    }

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 69
    Points : 85
    Points
    85
    Par défaut
    Si tu veux appeler une méthode à partir d'un contexte static, il faut que soit ta méthode soit static (c'est à dire que la méthode est indépendante de toute instance de classe) soit que tu passe par une instance de la classe contenant ta méthode.

    Soit:
    public static Queues creatQueues()

    Soit:
    Queues aQueues = new Assignement_1_1().creatQueues();

  5. #5
    Membre confirmé Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Points : 491
    Points
    491
    Par défaut
    Merci pour ces informations, j'y vois beaucoup plus clair sur ce sujet.

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

Discussions similaires

  1. Laravel error (Non-static method /orm)
    Par hedibox dans le forum Laravel
    Réponses: 2
    Dernier message: 23/09/2013, 08h00
  2. non-static method cannot be referenced from a static context
    Par Spawny123 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 04/03/2010, 21h38
  3. [MySQL] Erreur : Non-static method DB::isManip()
    Par lodan dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/09/2007, 15h37
  4. Cannot make a static reference to the non-static method
    Par semaj_james dans le forum Langage
    Réponses: 5
    Dernier message: 11/05/2006, 23h10
  5. [FOP] [ERROR] non-static variable this cannot be referenced from a static context
    Par cash3000 dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 05/05/2006, 16h46

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