Résultats de 1 à 5 sur 5

Sujet : Probleme avec des "static"

  1. #1

    Probleme avec des "static"

    Voila je fais un projet qui consiste a créer une caclculatrice des nombres signé et non signés, FSP, FDP et virgule flottante.

    J\'ai donc fait une classe pour chaque type de nombre. Pour 2 de ces classes je n\'ai aucun problèmes et pour les autres je suis obliger de mettre des static partout si je veux que ca marche. Le probleme est que je veux pouvoir créer plusieurs nombre a la fois donc les static m\'empechent de le faire.

    Si qqn a une réponse sachant que toutes mes entetes sont les meme, ce serait cool de me la donner.

    Merci d\'avance

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    1 823
    bonjour enhancer

    \'et pour les autres je suis obliger de mettre des static \' pourquoi ? ton message ne le laisse pas deviner.

    envoie un bou de code pour voir on pourra peut être y voir plus clair ...

    a bientôt :wink:

  3. #3
    Voila une des classes qui ne fonctionnent pas sans le static:

    public class NBReelFSP
    {
    private static int Taille;
    private static boolean[] TNBReelFSP;
    private static final int TailleMax = 32;
    //Constructeur du nombre au format FSP
    public NBReelFSP()
    {
    Taille=32;
    TNBReelFSP = new boolean[Taille];
    }

    static BufferedReader flux = new BufferedReader (new InputStreamReader(System.in));

    //Méthode permettant la saisie d\'un nombre réel
    public static void Saisie () throws IOException

    en voila une qui fonctionne sans le static:
    package NBNONSigne;

    import java.io.*;

    //Classe gerant les nombres non signés et les méthodes nécessaires associées
    public class NBNONSigne
    {
    //Déclaration des attributs: \"Taille\" est la taille du nombre non signé concerné (8,16,32 Bits).
    //Et TNBNONSigne est le tableau de booléens contenant la valeur du nombre concerné.
    private int Taille;
    private boolean[] TNBNONSigne;
    private boolean Carry;

    //Constructeur de l\'objet NBNONSigne.
    public NBNONSigne(int VTaille)
    {
    Taille = VTaille;
    TNBNONSigne = new boolean[Taille];
    }

    //Fonction qui récupere la variable privée Taille.
    public int GetTaille()
    {
    return Taille;
    }

    //Fonction qui récupere la variable privée TNBNONSigne.
    public boolean[] GetTNBNONSigne()
    {
    return TNBNONSigne;
    }
    et voila une partie de mon main:

    import NBNONSigne.*;
    import NBSigne.*;
    import NBReelFSP.*;
    import NBReelFDP.*;
    import NBReelVF.*;
    import Menu.*;

    import java.io.*;
    import java.*;

    public class Projet
    {
    public static void main (String[] arguments) throws IOException
    {
    int Choix;
    NBReelFSP Nombre12 = new NBReelFSP();
    NBReelVF Nombre3 = new NBReelVF();
    //NBReelFDP Nombre13 = new NBReelFDP();
    //NBReelFDP.Saisie();
    //NBReelFDP.Affichage();
    NBReelFSP.Saisie();
    NBReelFSP.Affichage();

    et voila l\'erreur si les tatic ne sont pas mis dans la classe qui ne fonctionne pas:
    Projet.java:21: non-static method Saisie() cannot be referenced from a static context
    NBReelFSP.Saisie();
    ^
    1 error

    jespere que cela vous aura apporter quelques précisions

  4. #4
    en fait c\'est bon comme un boulet je n\'avai pas vu que je ne travailais pas sur une instance de ma classe et c\'est pour ca que ca ne fonctionnait pas.

    Désolé et merci quand meme

  5. #5
    Membre MP
    Inscrit
    août 2013
    Messages
    1 823
    NBReelFSP.Saisie(); renvoie \'The method Saisie() from the type NBReelFSP is not static\'

    ton appel se faisant directement depuis la classe, tu ne peux avoir qu\'une erreur si cette methode n\'est pas de type static.

    mais conformement a ton souhait avec un code different :

    public class NBReelFSP {
    private int Taille;
    public NBReelFSP() {
    //Constructeur du nombre au format FSP
    }

    public void Saisie () throws IOException {
    // Méthode permettant la saisie
    }
    }

    et si tu l\'accede depuis son instance :

    public class Projet {
    public static void main (String[] arguments) throws IOException
    {
    int Choix;
    NBReelFSP Nombre12 = new NBReelFSP();
    Nombre12.Saisie();
    }
    }

    Tout rentre dans l\'ordre si la methode est declarée public et non statique ...

    je ne publie ce message que pour ceux qui le reliront dans la mesure ou tu as toi même resolu le problème.
    (c\'est encore la meilleur methode pour ne plus la refaire)

    a bientôt :wink:

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé
Please disable Adblock!