2013-03-03 70 views
0

我是Java的新手,我们必须完成这个小项目。所以我有3个以上的课程。Java - 在另一个类的Main中定义的使用类

MY代码是在引擎收录 http://pastebin.com/GEq9DLiP

等等,等等 问题是,在第三类它最高审计机关

"kangelane cannot be resolved" 

但在Main.java kangelane已经“定义的”和它们在相同的包装中。 哦,Eclipse还希望以后

int sook = 4;

int dam; 

,也有“clode支架”添加“开放布莱希特”到底 即使所有打开的支架被关闭,反之亦然

我在“Voitleja.java”中拥有Getters和Setter,因此很有用。 它也工作,当我只有2类不是3(Voitlus在主)

+0

你能在这里发布的代码?我没有看到Kangelane的类定义? – 2013-03-03 13:30:30

+0

在main.java “Voitleja kangelane =新Voitleja(nimi,55,12);” – Hans 2013-03-03 13:36:01

+0

您还应该考虑使用英文变量名称。你必须承认'setLives()'和'setStrength()'比'setElud()'和'setTugevus()'更健全。 – j0ntech 2013-03-03 13:56:09

回答

1

的问题是,主要是一个静态类,如果你想在主,在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); 
      } 
    } 
+0

谢谢你解决了更大的问题,现在为什么它要求“{”在“int dam”之后。 ? http://pastebin.com/kRu8izLL – Hans 2013-03-03 13:42:54

+0

有时候Eclipse会记住你之前做过的事情,并且不能正确刷新,请尝试关闭并重新运行(也许清理你的项目),首先看看有没有没有其他解释。尝试使用命令行进行编译,以确保存在Eclipse问题 – Jaay 2013-03-03 13:48:55

+0

谢谢!它的工作,即使显示错误! – Hans 2013-03-03 13:54:18

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); 
} 

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

+0

我该怎么做? – Hans 2013-03-03 13:36:39

+0

@ user2128837嗯......'public Voitleja kangelane;' – Doorknob 2013-03-03 13:37:19

+0

'public class ClassContainingMain {Voitleja kangelane = new Voitleja(nimi,55,12); //其余的类' – 2013-03-03 13:38:07

相关问题