Non static variable cannot be referenced from a static context [Résolu]

axelvdk 43 Messages postés dimanche 26 août 2012Date d'inscription 30 mai 2013 Dernière intervention - 30 janv. 2012 à 11:30 - Dernière réponse : axelvdk 43 Messages postés dimanche 26 août 2012Date d'inscription 30 mai 2013 Dernière intervention
- 31 janv. 2012 à 09:58
Hello,

J'ai un code tout simple qui devrait calculer le carré d'un nombre mais il me lance le message d'erreur "non static variable cannot be referenced from a static context". Je sais pas quoi corriger dans ce code :
public class Synchro1 {

public static void main (String  args []) {

Carre c1 = new Carre(4);
c1.start();
}

class Carre extends Thread {

public Carre (double nb)
{
this.nb = nb;
}

public void run () {
try {
nbcarre=nb*nb;
System.out.println (nbcarre);
}
catch (InterruptedException e) {}

}

private double nb;
private double nbcarre;
}
}

Voilà le code qui me pose problème.

J'ai aussi une petite question subsidiaire, je travaille avec le livre de Claude Delannoy : Programmer en Java et il fait tout sur Eclipse. Cela dit je préfère pour bien comprendre, utiliser Notepad afin de pas avoir d'aide. Mais j'en ai quand même besoin :-) !

Dans les exemples du livre il donne un code sans import, ni package, ni extends etc... et il utilise des méthodes comme Clavier.lireString(). J'ai pas essayé sur Eclipse mais ça compile pas sur Notepad, il reconnait pas la méthode (genre cannot find symbol à propos de Clavier.lireString()). Quelle est la manipulation que je dois faire pour utiliser ce genre de méthodes.

Un grand merci à ceux qui prennent la peine de me lire,

Axel



Les petits ruisseaux font les grands fleuves...
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 30 janv. 2012 à 13:47
3
Merci
Bonjour,

A quel niveau ton erreur est elle levée ? Je ne pense pas que ce soit sur ces lignes (sauf si j'ai laissé passer qq chose).

Sinon, je te déconseille d'utiliser notepad, il ne me semble pas que tu comprennes mieux sans, et tu perd beaucoup de temps. Beaucoup d'enseignant pensent encore que c'est mieux de commencer comme ca et je pense qu'ils ont tord.

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Meilleure réponse
Utilisateur anonyme - 30 janv. 2012 à 20:19
3
Merci
Salut,

Le message exact est:

non-static variable this cannot be referenced from a static context


...\ Dan /...

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
axelvdk 43 Messages postés dimanche 26 août 2012Date d'inscription 30 mai 2013 Dernière intervention - 31 janv. 2012 à 09:57
0
Merci
Merci pour les réponses en tout cas, pour ce qui est du notepad, je sais pas quelle est la meilleure méthode, à mon avis ça se base sur un truc du genre qui peut le plus peut le moins. Je suis pas assez avancé pour donner un avis dont je sois moi-même satisfait... :-).

J'ai trouvé le problème de la lecture clavier, il fallait que je compile un code qui est donné avec le bookin.

Effectivement je me suis trompé, le this que danimo a rajouté manquait bien et il me marque l'erreur a la ligne 5 :

Synchro1.java 5 :non-static this cannot be referenced from a static context; Carre c1 = new Carre (4);
^
Je crois que je vois ce qu'il veut dire, je crée un objet dynamique que lui considère comme statique d'où le bug mais je ne sais pas comment rendre ça cohérent.

Merci en tout cas,

A +

Axel



Les petits ruisseaux font les grands fleuves...
Commenter la réponse de axelvdk
axelvdk 43 Messages postés dimanche 26 août 2012Date d'inscription 30 mai 2013 Dernière intervention - 31 janv. 2012 à 09:58
0
Merci
PS: la ^ a changé de place, elle en dessous du new et pas du Carre.

Les petits ruisseaux font les grands fleuves...
Commenter la réponse de axelvdk

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.