我正在为一个班级开发一款非常简单的文本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的更多信息。

08-03 17:52
查看更多