Non-static variable Dialysis1 cannot be referenced from a static context

shadowmic Messages postés 13 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 28 avril 2008 - 26 avril 2008 à 03:43
shadowmic Messages postés 13 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 28 avril 2008 - 28 avril 2008 à 11:22
Voilà bonjours tout le monde je m'excuse de poser une question aussi con mais je suis un débutant en java.
erreur : non-static variable Dialysis1 cannot be referenced from  a static context

Comme le sujet l'indique le problème est le suivant dans mon main()

import com.dalsemi.system.*;

public class DialysisParnet{ 
    int heartAverage=180;   
    boolean dialysisPower = false;
    public static DataPort port = new DataPort(0x380002);//DataPort.CE3) LCD
    DataPort p0 = new DataPort(0x380000); // LED and switch
    DataPort p1 = new DataPort(0x380001); // ADC

    public int ledPanel = 0;
    public int changePanel = 0;
    public int timeDialMin = 30;
    boolean dialEnd = false;
    int heartRate[] = new int[5];

public class Dialysis extends Thread
{   
   
    int iHeart;   

   
    public void run(){
        while(true){
        try{
            for(int i=4; i>0; --i){
            heartRate[i]=heartRate[i-1];
            }
        heartRate[0] = p1.read();
        heartAverage = ( heartRate[0] + heartRate[1] + heartRate[2] + heartRate[3] + heartRate[4]) / 5;
        if (heartAverage < 50){
        dialysisPower = false;
        ledPanel= ledPanel & 0xBF;         //  désactivate the Dialysis-on byte
        ledPanel= ledPanel | 0x21;            // activate the Dialysis-off and heart problem byte
        p0.write(ledPanel);                    //switch on the LED dialysis-Off, heart problem  and switch off the Led Dialysis-on
        //TimerDial1.suspend();
        }
        if (heartAverage > 50 && dialysisPower == false){
        dialysisPower = true;

        ledPanel= ledPanel & 0xDE;            
        ledPanel= ledPanel | 0x40;            // activate the Dialysis-on
        p0.write(ledPanel);   
        //TimerDial1.resume();       
        }
        if (heartAverage > 220){
       
        ledPanel= ledPanel | 0x20;            // activate the heart problem LED
        p0.write(ledPanel);           
        }
        }
        catch(IllegalAddressException err_)
        {
            System.out.println(err_.toString());
        }
        }   
    }   

}

public static void main(){

boolean dialysisPower = true;
    Dialysis Dialysis1 = new Dialysis();
    TempOxygen TempOxygen1 = new TempOxygen();
    LcdMonitor LcdMonitor1 = new LcdMonitor();

Dialysis1 .setPriority ( 10);
TempOxygen1.setPriority ( 1);
LcdMonitor1.setPriority ( 1);

Dialysis1.start();
TempOxygen1.start();
LcdMonitor1.start();
}}

Merci de votre aide

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 avril 2008 à 08:54
Salut,

C'est tout simplement que tu essaie d'utiliser une instance de classe non static dans un méthode statique.

La staticité permet de partager les variables, les fonctions, etc. entre toutes les instances des classes, ce qui est plus rapide, mais va à l'encontre de l'approche objet.

Dans ton cas, pourquoi ne crées-tu pas 3 classes dans 3 fichiers différents, au lieu de faire de la classe Dialysis une classe imbriquée ?
______________________________________
DarK Sidious
0
shadowmic Messages postés 13 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 28 avril 2008
26 avril 2008 à 20:28
Ben comme je t'ai dit je suis un débutant et la je bloc... J'ai eu des cours très sommaire sur le java mais la les profs ne veulent pas s'emmerder a m'aider :s ...

Le programme n'est pas complet il y a d'autre class dans le même style que Dialysis pour TempOxygen et LcdMonitor mais sa aurait fait un trop gros pavé :s...

Alors il faut que je fasse d'autre class mais je met quoi dans mon main ???
0
shadowmic Messages postés 13 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 28 avril 2008
28 avril 2008 à 11:22
Personne n'a une idée???
0
Rejoignez-nous