我正在为一个班级开发一款非常简单的文本RPG游戏。我感觉一切都很好,但是当我运行以下类时,出现编译器错误。
这是我的“房间”课程:
import java.io.*;
import java.util.*;
public class Room {
public static int size;
public static void Room(int n) {
size = n;
}
public static void showSize() {
System.out.println(size);
}
}
这是调用它的类:
import java.io.*;
import java.util.*;
public class Dungeon {
public static void main(String [] args) {
int mySize = 10;
Room a = new Room(mySize);
a.showSize();
}
}
奇怪的是,如果我在Room()构造函数中不带任何参数的情况下运行它,那很好,但是当我尝试传递大小(在变量中或显式使用int)时,我得到了:
Dungeon.java:8: cannot find symbol
symbol : constructor Room(int)
location: class Room
Room a = new Room(mySize);
^
1 error
最佳答案
public static void Room(int n){
size = n;
}
不是构造函数,它是静态方法。所以,当你尝试
Room a = new Room(mySize);
Java寻找带有参数的构造函数并显示编译时错误。
更改为:
public Room(int n){
size = n;
}
阅读有关构造函数here的更多信息。