ne peut pas faire une référence statique pour un non méthode statique

Jusqu'à présent j'ai le code suivant:

import java.util.Scanner;
public class HallLanceMemoryCalculator {
private double currentValue;
public static int displayMenu(){
Scanner input=new Scanner(System.in);
int choice=0;
while(choice<1||choice>5){      
System.out.println("1.Add");
System.out.println("2.Subtract");
System.out.println("3.Multiply");
System.out.println("4.Divide");
System.out.println("5.Clear");
System.out.println("What would you like to do?");
choice=input.nextInt();
}
return choice;
}
public static double getOperand(String prompt){
Scanner input=new Scanner(System.in);
System.out.println("What is the second number?");
double secondNumber=input.nextDouble();
return secondNumber;
}
public  double getCurrentValue(){
return currentValue;
}
public void add(double operand2){
currentValue+=operand2;
}
public void subtract(double operand2){
currentValue-=operand2;
}
public void multiply(double operand2){
currentValue*=operand2;
}
public void divide(double operand2){
currentValue/=operand2;
}
public void clear(){
currentValue=0;
}
public static void main(String[] args) {
double value=getCurrentValue(); 
}

}

Lorsque je tente de régler double value=getCurrentValue(); à la fin, j'obtiens un message d'erreur "Ne peut pas faire une référence statique pour les non-static method". Il dit que la solution est de faire la getCurrentValue() méthode statique, mais on m'a dit de ne pas rendre ce champ statique par mon professeur. Est-il une solution simple à ce que je suis en manque?

  • but I was told not to make that field static by my professor Et l'alternative est donc...?
  • Pour plus d'informations sur les références statiques et non statiques membres, vérifiez le côté droit de cette page, sous "Liées".
  • Créer une instance. J'aime à le nommer me: MyClass me = new MyClass(); double value = me.getCurrentValue();
  • Avant que quelqu'un répond à cette question pour vous, ils ont besoin de savoir - savez-vous ce que "statique" signifie réellement? Si vous le faites, la réponse devrait être évidente. Si vous n'avez pas, alors je vous conseille la lecture de vos notes de cours, ou le Java en ligne des tutoriels.
  • je suis d'accord avec@DavidWallace. créer une instance et utiliser l'objet pour accéder à des méthodes non statiques ou variables à partir d'un contexte statique. HallLanceMemoryCalculator c = new HallLanceMemoryCalculator(); double value=c.getCurrentValue();
InformationsquelleAutor user3221816 | 2014-02-17