2014-11-02 129 views
0

嗨我對Java比較陌生,但我想我已經開始有點hang of了。無論如何,我想知道是否可以從完全不同的類訪問在main方法中聲明的變量(或者更簡單的類),如果是這樣的話?例如,我編寫了一個簡單的生命遊戲模擬,我想通過更改一個變量輕鬆地改變我的網格大小。然而,這個變量不僅需要改變計算機看到的功能網格,還需要改變GUI網格。由於GUI網格不在主類文件中,因此我不知道如何訪問變量。有什麼建議麼?從不同的類調用主變量

//謝謝,伊瓦爾

+3

你應該也許應該在開始編程之前瞭解OOP和封裝。 [The Java Tutorials - OOP](http://docs.oracle。com/javase/tutorial/java/concepts /) – ifloop 2014-11-02 00:06:36

+0

這是Java(和許多其他語言)編程的基礎知識之一,稱爲範圍界定。簡答:不。更長,更有用的答案:轉到http://docs.oracle.com/javase/tutorial/java/index.html,通讀它們,在那之後,用Java玩遊戲會更好。 – 2014-11-02 00:06:59

+1

而不是搞清楚如何讓GUI網格類訪問主程序中的變量,可能更好的辦法是讓主程序告訴GUI網格類更改大小。這開始深入瞭解OOP背後的概念,所以我認爲@ ifLoop的建議是一個很好的建議。 – ajb 2014-11-02 00:07:59

回答

0

建議:你最好的選擇是讓Java和麪向對象編程的教科書。只是試圖編寫程序,你不可能正確地學習這些東西。

這適用於正在尋找這樣的問題的答案的任何其他人。


反正我在想,如果這是在所有可能從一個完全不同的類,如果是如何訪問的主要方法聲明的變量(或類,如果這是更容易)?

main方法聲明的變量是局部變量,它不能從別的任何地方訪問。

變量可以在類中聲明(如C),其中包含main方法。

  • 一個實例變量(又名場)可以從另一個類(模的可見性規則......見下文)進行訪問提供您所創建的C一個實例。

  • 一個靜態變量不需要一個C的實例......但是另一方面是變量只有一個實例。

可見性規則說明是否允許另一個類訪問變量(或方法)。 A private字段根本不可見。每個班級都可以看到一個public字段。 protected和包私人可見度介於無可見度和完全可見度之間。

允許將所有字段聲明爲public,以便所有內容都可以看到並且(通常)修改狀態。然而,這是一個壞主意,因爲它打破了大型OO程序需要可理解和可維護的「抽象邊界」。


1 - 這並不完全正確。方法的局部變量可能在範圍內,並且可以在方法中聲明的嵌套類或lambda表達式中看到。但是,所述變量必須是final或有效最終(取決於Java版本)。此外,我懷疑這將是第一步編程練習的正確解決方案......