Non-static variable Dialysis1 cannot be referenced from a static context
shadowmic
Messages postés13Date d'inscriptionmercredi 10 mai 2006StatutMembreDernière intervention28 avril 2008
-
26 avril 2008 à 03:43
shadowmic
Messages postés13Date d'inscriptionmercredi 10 mai 2006StatutMembreDernière intervention28 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();
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 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
shadowmic
Messages postés13Date d'inscriptionmercredi 10 mai 2006StatutMembreDernière intervention28 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 ???