我正在开展一个学校项目,建立一个国际象棋游戏。我有我的电路板,可以创建阵列并用电路板填充电路板。
现在,我想在游戏类中实例化一个新棋盘并使用控制台输入玩家动作。为了使这个变得尽可能简单,我的麻烦就是输入非静态变量。
例如:
public class Test extends ConsoleProgram{
public static double a1;
public static void main(String[] args) {
a1 = readLine("Insert value of a1");
System.out.println(a1);
}
}
正如您可能看到的那样,这不起作用,因为java
抱怨cannot make static reference to the non-static method readLine()
我该如何解决这个问题?也许有一些非常基本的东西我只是不明白..
一如既往,非常感谢您快速而富有洞察力的答案!
答案 0 :(得分:2)
将readline
定义为static
或
创建一个类的对象,然后调用方法new Test().readline();
答案 1 :(得分:2)
如果您不想将readLine方法设为静态,请对实例进行调用:
public static void main(String[] args) {
Test me = new Test();
a1 = me.readLine("Insert value of a1");
System.out.println(a1);
}
答案 2 :(得分:1)
将readLine
()`设为静态。然后您可以访问
如果将方法设为静态,则可以在main()方法中使用它
否则为Test类创建一个对象,然后使用它
答案 3 :(得分:1)
我发现的最简单的工作就是在main方法中实例化对象,并从构造函数中调用相关的方法。
public static void main(String[] args)
{
new ClassThing();
}
public ClassThing()
{
// Make your method calls here.
}
这意味着您可以访问实例方法,而无需从static context
调用所有内容。
答案 4 :(得分:1)
在main中创建Test
实例并调用它的实例方法。
public class Test extends ConsoleProgram {
public double a1;
public void run() {
a1 = readLine("Insert value of a1");
System.out.println(a1);
}
public static void main(String[] args) {
Test main = new Test();
main.run();
}
}
答案 5 :(得分:1)
您应该实例化具有方法readLine()
的类的对象。
如果该类的名称是Reader
,您应该执行以下操作:
Reader r= new Reader();
a1 = r.readLine("Insert...");`