2015-10-06 43 views
0

我想知道如何獲得一個變量/布爾值在一個不同類的循環內的值。Java在另一個類的循環中獲取變量?

我會在一個類中的變量,並且希望得到在另一個問題:

的Class1:

public void mainLoop() 
{ 
while(!Display.isCloseRequested) 
{ 
    frames++ 
    if(frames == 200) 
    { 
     key = 5 
     run = false; 
    } 

    if(frames == 400) 
    { 
     key = 10 
     run = true; 
    } 
} 
} 

,並在我的其他類2我要接取改變的可變因素:

public Class2() 
{ 
public void printVariables(int key) 
{ 
    if(key == 5) { System.out.println("KEY 5"); } 
    if(key == 10) { System.out.println("KEY 10"); } 
    if(run == false) { System.out.println("RUN FALSE"); } 
    if(run == true) { System.out.println("RUN TRUE"); } 
} 
} 

如何?

感謝您的幫助!

+1

你的循環永遠不會終止。 – tnw

+0

這只是一個例子,實際的循環方式更大,更復雜 - 但只爲你我編輯了我的問題.. – DisasterCoder

回答

2

添加它作爲參數傳遞給方法:

public Class2() 
{ 
    public void printVariables(int key) 
    { 
     if(key == 5) { System.out.println("KEY 5"); } 
     if(key == 10) { System.out.println("KEY 10"); } 
     if(run == false) { System.out.println("RUN FALSE"); } 
     if(run == true) { System.out.println("RUN TRUE"); } 
    } 
} 

然後調用這個方法與類的一個實例:

public void mainLoop() 
{ 
    Class2 cls2 = new Class2(); 
    while(someCondition == true) 
    { 
     frames++ 
     if(frames == 200) 
     { 
      key = 5 
      run = false; 
     } 

     if(frames == 400) 
     { 
      key = 10 
      run = true; 
     } 
     cls2.printVariables(key); 
    } 
} 

或者,如果可以的話,使該方法的靜態和靜態稱它(即Class2.printVariables(key))。

+0

非常感謝這很好的工作..我相信我可以使它靜態,即使我' m仍然不確定當我將它設置爲靜態時我正在對我的變量做什麼 - 你可以通過任何改變來詳細說明我需要如何使用靜態變量來實現它,以及可能存在哪些缺點? – DisasterCoder

+0

很高興幫助。至於靜態 - 你不需要改變任何變量,只需要你的方法('printVariables')。這僅僅意味着每次使用它時都不需要存在'Class2'的實例(不需要執行新的Class2)。在這裏你可能會在你的代碼中使用它一次,但如果你想在其他地方使用它,你不需要實例化'Class2'。我建議你谷歌和熟悉這個問題多一點。 –

+0

謝謝..以及我想讓它靜態是不夠的,因爲我想多次使用它,並不時地改變變量..雖然我遇到了一個小問題..首先,我認爲它的工作原理是我想要的,但它似乎有一些問題,我已經編輯了我的問題,以便您可以看到我已經完成了什麼以及問題出在哪裏,希望您能夠幫助我解決更多問題 - 我試圖實現的目標對於整個計劃非常重要正確地工作。 – DisasterCoder

相關問題