gpt4 book ai didi

java - 不能对非静态方法进行静态引用

转载 作者:行者123 更新时间:2023-12-03 21:45:42 27 4
gpt4 key购买 nike

到目前为止,我有以下代码:

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();
}

当我尝试在最后设置 double value=getCurrentValue(); 时,我收到一条错误消息“无法对非静态方法进行静态引用。”它说修复方法是使 getCurrentValue() 方法也静态化,但我的教授告诉我不要将该字段设为静态。是否有一个我只是想念的简单解决方案?

最佳答案

静态方法属于类,非静态方法属于类的实例

当您从 main 调用 getCurrentValue() 时,您会收到一个错误,因为 main 未与任何实例相关联。

您需要创建类的实例:

HallLanceMemoryCalculator me = new HallLanceMemoryCalculator();

然后就可以调用实例的getCurrentValue()了:

double value = me.getCurrentValue();

关于java - 不能对非静态方法进行静态引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21839182/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com