不能静态引用非静态方法?

Cow*_*lhu 0 java static-methods instance-methods

所以,简而言之.我有两节课.

package rpg;

public class Engine {
    public void main(String args[]) {
        Start.gameStart();
        System.out.println(menuResult);
    }
}
Run Code Online (Sandbox Code Playgroud)

package rpg;
public class Start {
    int menuResult = 3;
    public int gameStart() 
    {
        return menuResult;
    }
    public int getMenuResult()
    {
        return Start.menuResult;
    }
}
Run Code Online (Sandbox Code Playgroud)

它不断抛出错误'无法对非静态方法gameStart()进行静态引用.我确定我错过了一些简单但却找不到的东西.谢谢!

kos*_*osa 7

您需要在该实例上创建Start类的实例和调用gameStart()方法,因为gameStart()实例方法不是静态方法.

 public void main(String args[]) {
       new Start().gameStart();
       ..................
  }
Run Code Online (Sandbox Code Playgroud)

只能使用类名作为perfix来访问静态方法.

  • 您正在为Start()类创建一个实例(对象)并调用该实例的gameStart()方法(记住gameStart()是实例方法). (2认同)