0

我是 Java 新手,我们必须做这个小项目。所以我有3个以上的课程。

我的代码在pastebin http://pastebin.com/GEq9DLiP

等等等等。问题是,在第三类它是

"kangelane cannot be resolved"

但是 kangelane 已经在 Main.java 中“定义”了,它们在同一个包中。哦,Eclipse 还想在之后添加“开放括号”

int sook = 4;或者

int dam;

即使所有开括号都关闭,反之亦然

我在“Voitleja.java”中有 Getter 和 Setter,这样就可以了。它也有效,当我只有 2 节课而不是 3 节课时(Voitlus 在 Main)

4

2 回答 2

1

问题是 main 是一个静态类,如果你想在 main 和 oter 类中使用一个变量,你必须将它定义为一个静态变量,对于你的例子你应该这样做:

public class Main {
static Voitleja kangelane;
            public static void main(String[] args) {
                    String nimi = JOptionPane.showInputDialog("Sisestage võitleja nimi");
                    kangelane = new Voitleja(nimi, 55, 12);
            }
    }

然后在你的另一个班级(假设导入是正确的)

        public class Voitlus{
            Random generator = new Random();
            int dam;
            int sook = 4;
            while (true) {
                    Main.kangelane.setElud(kangelane.getElud() + 7);
            }
    }
于 2013-03-03T13:37:12.187 回答
0
public static void main(String[] args) {
    String nimi = JOptionPane.showInputDialog("Sisestage võitleja nimi");
    Voitleja kangelane = new Voitleja(nimi, 55, 12);
}

(之后)

while (true) {
    kangelane.setElud(kangelane.getElud() + 7);
}

变量在不同的范围内。您必须在声明kangelane后立即public class声明,以便两种方法都可以“看到”它。

于 2013-03-03T13:32:10.303 回答