-1

Java では、あるメソッドから次のメソッドへ、およびクラス間で変数を保持できますか?

Commands から変数を取得し、QandA で変更して、もう一度変更するまで保持しようとしています。

    public class Commands
{
   int torch = 1;
}
_____________

public class QandA
{
     Dostuff d = new Dostuff
     Commands a = new Commands();
     public void torch
{
     System.out.println("Torch = " + torch);
     a.torch = 2;
     System.out.println("Torch = " + torch);
     d.dostuff();
}
public class dostuff
{
     public void dostuff()
   {
     // User imput is gathered here etc etc.
    QandA();
   }    

}

したがって、出力は(のループ)になると思います

トーチ = 1

トーチ = 2

トーチ = 2

トーチ = 2

トーチ = 2

トーチ = 2

3サイクル後。しかし、それがすることはです。

トーチ = 1

トーチ = 2

トーチ = 1

トーチ = 2

トーチ = 1

トーチ = 2

3サイクル後。

助けてください。

4

2 に答える 2

1

dostuff();and のようなクラスをどのように参照するかはわかりませんがQandA();[それらにはコンパイル エラーが発生する] だけですが、Command インスタンスを 1 つだけ作成し、同じインスタンスを渡すように注意してください。あなたの場合、QandAのインスタンスを作成するたびに、フィールドが1に設定されたCommandインスタンスが作成されますtorch

于 2011-05-01T04:18:14.273 に答える
1

データの永続化に問題はありませんが、データを作成して保存する場所を意識する必要があります。

あなたの場合、「1」に初期化されたコマンドのメンバーとして、コマンドクラススコープ内で「トーチ」を宣言しています(私は思う-構文は少しおかしいです)。したがって、「new Command()」を宣言するたびに、新しい「torch」変数 == 1 から開始します。

「トーチ」を静的として宣言することができます。つまり、すべての Command インスタンスで共有され、コンストラクターが呼び出されるたびにリセットされないため、必要に応じて動作します (設定していない場合)。コンストラクター内で 1)。

于 2011-05-01T04:19:54.513 に答える