0

ですから、私の質問は漠然としすぎていたと思います。runningTotalその下のクラスの最後にメソッドをまとめると、それをandArrayIntListとして書き直して、3 つすべてをオーバーロードして実装するように求められます。おそらく、私は自分自身を混乱させすぎているのかもしれませんが、ここからどこへ行くべきかわかりません...これが少し明確になることを願っています。助けてくれてありがとう!runningTotal(ArrayIntList)static runningTotal(ArrayIntList)

import java.io.*;

public class ArrayIntList {
    private int[] elementData;
    private int size;

    public ArrayIntList(){
        elementData = new int[100];
        size = 0;
    }

    public void add(int value){
        elementData[size] = value;
        size++;
    }

    public void print(){
        if (size == 0){
            System.out.println("[]");
        }
        else {
            System.out.print("[" + elementData[0]);
            for (int i = 1; i < size; i++)
                System.out.print(", " + elementData[i]);
            System.out.println("]");
        }
    }

    public ArrayIntList runningTotal() {
        ArrayIntList newList = new ArrayIntList();
        int i = 0;
        int total = 0;
        while (i < size) {

            total = elementData[i];
            for(int j = 0; j < i; j++);
            newList.add(total);
            i++;
        }
        return newList;
    }
}
4

1 に答える 1

5

あなたが尋ねたことは本当に意味がありません。runningTotal を 1 つだけカウントし、呼び出されるのは 1 つだけです。あなたはまだ他のものを書かなければなりません。オーバーロードされた関数は、同じ名前の関数であり、通常は同様の機能を備えていますが、設定が異なります。そう:

void runningTotal(int valueIn)
{/*one thing*/}

void runningTotal(int[] arrayIn)
{/*another thing*/}

int runningTotal()
{return yetAnotherThing;}

...すべて同じ名前の関数ですが、すべて完全に異なる関数です。この力は利便性の形でもたらされ、実際に渡す型に注意を払うことなく関数に値を渡すことができます。

必要なことは、関数を再度定義することだけです。機能の重複がある場合は、作成中のオーバーロードから他のオーバーロードの 1 つを呼び出すこともできます。

コンピューターは、ほとんどの場合、パラメーターの順序を調べています。function(int, int) は function(string, int) または function() とは異なります。これの当然の結果は、パラメーター名を気にしないことです。たとえば、function(int a, int b) は function(int c, int d) とまったく同じです。

これらの関数を文字通り同時に実行したい場合は、 Java スレッドと同時実行性を調査する必要があります。

于 2013-02-26T04:36:39.220 に答える