0

プログラムのメイン メソッドには、パラメーターを使用してさまざまなメソッドに渡したスキャナー入力がたくさんあります。これらのさまざまな方法で、計算を行い、新しい変数を作成しました。最後のメソッドでは、これらの新しい変数を一緒に追加する必要がありますが、新しい変数は他のメソッドにしか存在しないため、コンパイラは新しい変数を認識しません。新しい変数を最終的なメソッドに渡すにはどうすればよいですか?

4

5 に答える 5

4

ローカル変数を作成する代わりに、クラス変数を作成します。クラス変数のスコープは、それらがグローバルであることです。つまり、クラス内のどこからでもこれらの変数にアクセスできます。

于 2013-10-01T06:26:20.073 に答える
4

メソッドで作成された変数はメソッドに対してローカルであり、スコープはメソッドのみに制限されます。

したがってinstance members、メソッド間で共有できる を選択してください。

そのように宣言すると、メソッド間でそれらを渡す必要はありませんが、メソッド内でそれらのメンバーにアクセスして更新できます。

検討、

public static void main(String[] args) {
    String i = "A";
    anotherMethod();
}

は main メソッドのローカル変数であるiため、にアクセスしようとすると、以下のメソッドでコンパイラ エラーが発生します。i他の方法ではアクセスできません。

public static void anotherMethod() {
    System.out.println("    " + i);
}

できることは、その変数を必要な場所に渡すことです。

public static void main(String[] args) {
    String i = "A";
    anotherMethod(i);
}

public static void anotherMethod(String param){
    System.out.println("    " + param);
}
于 2013-10-01T06:27:23.050 に答える
1

Listを作成し、それを各メソッドにパラメーターとして渡すことができます。最後に必要なのは、リストを反復処理して結果を処理することだけです。

于 2013-10-01T06:30:08.043 に答える
0

次のようなことができます。

public void doStuff()
{
    //Put the calculated result from the function in this variable
    Integer calculatedStuff = calculateStuff();
    //Do stuff...
}

public Integer calculateStuff()
{
    //Define a variable to return
    Integer result;

    //Do calculate stuff...
    result = (4+4) / 2;

    //Return the result to the caller
    return result;
}

これを行うこともできます (その後、クラス内の任意の関数で変数 CalculateStuff を取得できます)。

public class blabla {

    private Integer calculatedStuff;

    public void calculateStuff()
    {
        //Define a variable to return
        Integer result;

        //Do calculate stuff...
        result = (4+4) / 2;

        //Return the result to the caller
        this.calculatedStuff = result;
    }

}

しかし、他の誰もが示唆しているように、基本的な Java チュートリアルを行うことも強くお勧めします。

于 2013-10-01T07:28:57.633 に答える
0

新しい変数とその合計を返すメソッドでオブジェクトを作成します。メソッドで、このオブジェクトを新しい変数の計算に使用します。次に、オブジェクト メソッドを使用して、新しい変数の合計を取得します

于 2013-10-01T06:37:54.553 に答える