0

クラスで非静的を定義する配列へのアクセスに問題があります。

この配列の要素はまったく別のクラスによって追加された(「追加」と呼ぶ)ため、このクラスにも到達できません。私のクラスでは、「追加」から満たされた「A」クラス(配列を持つ)から配列を取得する必要があります。静的ではないため、この「A」クラスの新しい属性を作成すると、新しいオブジェクトが作成されるため、塗りつぶしを忘れてください。

私の質問; 要素を失わずにこの非静的配列を取得する方法はありますか?

4

2 に答える 2

1

あなたの説明からはわかりにくいですが、おそらく、必要な配列を含むクラスに「ゲッター」メソッドを追加し、配列にアクセスしたいクラスの配列を含むオブジェクトでそのメソッドを呼び出す必要があるだけです.

すなわち

public 'ArrayType' getArray() {
    return array;
}

「ArrayType」を配列のタイプに、「array」を配列の名前に置き換えます。

これにより、配列への参照が提供されるため、配列の内容に対してアクションを実行できます。

これは、別のクラスからオブジェクトのインスタンス変数にアクセスする必要がある場合の標準的な方法です。

于 2012-03-31T08:38:45.807 に答える
0

静的ではないため、この「A」クラスの新しい属性を作成すると、新しいオブジェクトが作成されるため、塗りつぶしを忘れてください。

はい、値が追加されたインスタンスが必要です。私たちはあなたのコードについてほとんど知らないので、その方法を教えることはできません (結局のところ、あなたはそれを何も示していません)。それが配列であるという事実は無関係です - インスタンス変数の全体的なポイントは、各インスタンスがそのオブジェクトの状態を表すために独自の変数のセットを持っているということです。特定のオブジェクトの状態が必要な場合は、そのオブジェクトへの参照が必要になります。

余談ですが、通常、別のクラスの変数に直接アクセスするべきではありません。変数は、必要に応じてデータにアクセスするためのプロパティを使用して、プライベートにする必要があります。(これ、変数ごとに 1 つのプロパティという意味でもありません。多くの場合、値を直接公開したくない場合がよくあります。代わりに、オブジェクト全体に作用するメソッドを公開します。何を知らずに、より具体的にすることは困難です。あなたのオブジェクトは表すことを意図しています。)

于 2012-03-31T08:01:47.213 に答える