2017-02-04 6 views
1

まず、3つのクラスがあります。 Mainクラスの名前は「main」、RunnableはStartRunnable、もう1つのRunnableはElimination Runnableです。コンストラクタを使用して1つのクラスを別のクラスに渡す

EliminationRunnableは、一定のループ上で動作する限り、現在のゲームは、可変

StartRunnable介してアクティブであるように、異なるものを実行するために多くのthread.sleepsとforループで動作し、forループと呼ばれるカウンタを有しています"intCounterLoop"これは公開として宣言されています。

メインクラスは、同時に各実行可能ファイルの新しいインスタンスを作成します。今

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

、私はStartRunnableクラスからintCounterLoop変数にアクセスすることができますどのように問題

。 Stimaticを使わずにEliminationRunnableクラスに入れますか?これらのクラスの複数のインスタンスが実行されている可能性があるので、私は静的を使用できません。

答えて

0

StartRunnableインスタンスは、そのパラメータリストの中にそのインスタンスを構築する代わりに、変数に格納します。

次に、インスタンスをパラメータとしてEliminationRunnableコンストラクタに渡します。それは何のための変数です。

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

次に、必要に応じて公共のものにアクセスできます。

PSフィールドをパブリックにして直接アクセスすることもできますが、プライベートにしてパブリックゲッターとセッターの代わりに使用します。もっと深く掘り下げたいのであれば、インターネット上で簡単に議論を見つけることができます。どのようにしてアクセス権をどのように公開したいかは、この回答の範囲外です。