2013-03-03 53 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

相關問題