2017-02-04 90 views
1

首先,我有3個類。 Main類被命名爲'main',一個名爲StartRunnable的可運行函數,另一個名爲Elimination Runnable的可運行函數。使用構造函數將一個類傳遞給另一個類

EliminationRunnable運行在恆定循環,只要當前的遊戲是通過可變

StartRunnable活性運行在一個用於與許多thread.sleeps循環來執行不同的東西,for循環有一個稱爲計數器「intCounterLoop」。它被宣佈爲公開。

Main Class同時創建每個可運行的新實例。

new Thread(new StartRunnable()).start(); 
new Thread(new EliminationRunnable(args[1])).start(); 

現在的問題

如何訪問從StartRunnable類intCounterLoop變量;在不使用Static的EliminationRunnable類中?我不能使用靜態,因爲這些類的多個實例可能正在進行。

回答

0

將您的StartRunnable實例存儲在變量中,而不是直接在該參數列表中構建它。

然後只是將實例作爲參數傳遞給您的EliminationRunnable構造函數。這就是變量的用途。

StartRunnable s = new StartRunnable(); 
new Thread(s).start(); 
new Thread(new EliminationRunnable(args[1], s)).start(); 

然後,您可以根據需要訪問任何你想要的公共資料。

PS您可以將該字段公開並直接訪問該字段,但我會將其設置爲私有,然後替換爲公共getter和setter。如果你想深入挖掘,你可以在互聯網上輕鬆找到相關的參數。無論如何你想公開訪問它都不在這個答案的範圍之內。

相關問題