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

avec Java Discussion :

non-static method cannot be referenced from a static context


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 7
    Points
    7
    Par défaut non-static method cannot be referenced from a static context
    Bonjour,

    Je suis un peu perdu! non-static method cannot be referenced from a static context


    J'ai une class de Dossier avec un contructeur sans parametre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        public Dossier(){
            this.nom = "";
            this.naissance = null;
            this.espece = "";
            this.sexe = 'M';
            this.couleur = "";
            this.nomMaitre = "";
            this.tel= "";       
            this.adresse= "";
            this.listeVisite = null;
        }
    ensuite dans une autre class AffichageDossier, j'aimerais avoir une methode qu'il cree une instance et le renvoit....est ce possible.

    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
    30
    31
    32
    33
    34
    public class AffichageDossier{
     
    public static void main( String[] args){
     
    Dossier d1= dossier();
    d1 = nouveau();
     
    }
     
    public Dossier nouveau(){
     
        Dossier nouveau = new Dossier();
     
        System.out.println("Nouveau dossier:");
        System.out.println("Saisir le nom de l'animal: ");
        nouveau.setNom(Clavier.lireString());
        System.out.println("Saisir la date de naissance de l'animal (JJ-MM-AAAA: ");
        nouveau.setDateNaissance(Formatage.saisirDate(Clavier.lireString(),"jj-MM-yyyy","cette date n'est pas valide: "));
        System.out.println("Saisir l'espèce de l'animal: ");
        nouveau.setEspece(Clavier.lireString());
        System.out.println("Saisir 'M' pour un mâle et 'F' pour une femelle: ");
        nouveau.setSexe(Character.toUpperCase(Clavier.lireCharLn()));
        System.out.println("Saisir la couleur de l'animal: ");
        nouveau.setCouleur(Clavier.lireString());   
        System.out.println("Saisir le nom du propriétaire: ");
        nouveau.setNomMaitre(Clavier.lireString()); 
        System.out.println("Saisir le numéro de téléphone: ");
        nouveau.setTel(Clavier.lireString()); 
        System.out.println("Saisir l'adresse du propriétaire: ");
        nouveau.setAdresse(Clavier.lireString()); 
         return nouveau;
    }
     
    }

  2. #2
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 74
    Points : 88
    Points
    88
    Par défaut
    Puisque la méthode nouveau() n'agit pas sur une instance, elle doit être déclarée static.

    Ensuite ces lignes ne sont pas correctes, la méthode dossier() ne semble pas exister :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dossier d1= dossier();
    d1 = nouveau();
    Ceci suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dossier d1 = nouveau();

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Points : 110
    Points
    110
    Par défaut
    Comme le dit Desintegr, pour appeler une méthode non statique de la classe AffichageDossier, il te faut une instance de cette classe. Tu as donc la solution de passer la méthode nouveau() en static ( et donc sans créer s'instance), soit tu crée une instance de ton affichage dossier en remplaçant ton main par ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public static void main( String[] args){
        AffichageDossier affichage = new AffichageDossier(); //Tu crée une instance
        Dossier d1 = affichage.nouveau(); // Tu l'utilises pour accéder aux méthodes non statiques
     
    }
    voilà à plus !

  4. #4
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    ou alors tu peux tout simplement appeler les methodes dans le constructeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class AffichageDossier{
     
        public static void main( String[] args){
             new AffichageDossier(); 
        }
     
        public AffichageDossier(){
             Dossier d1= Dossier();
             d1 = nouveau();
        }
     
    }
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

Discussions similaires

  1. Non-static variable cannot be referenced from a static context
    Par otylio dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 23/11/2018, 15h42
  2. Réponses: 4
    Dernier message: 12/02/2015, 10h27
  3. [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
  4. Erreur : cannot be referenced from a static context
    Par Belegkarnil dans le forum Langage
    Réponses: 2
    Dernier message: 21/12/2005, 07h24
  5. Réponses: 3
    Dernier message: 05/12/2005, 10h27

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