-2

クラス Fruit があり、そのコンストラクターでベクトル(さまざまな果物のベクトル)をインスタンス化しています。そして、そのクラスで私は searchVector メソッドを書いています。そのメソッドを別のクラス searchFruit から呼び出したいのですが、Fruit クラスのオブジェクトを作成すると、新しいベクターが初期化されます。searchVector メソッドを呼び出すと、ベクターが空になり (新しいベクターが作成されるため)、検索が失敗します。searchFruit クラスから searchVector メソッドを呼び出す方法はありますか。

class Fruit{
  Vector v;
  Fruit(){
      v= new vector();
  }
  public Fruit searchVector(String fruit){
     //Searches Fruit
  }

}   

class searchFruit{
   Fruit apple = new Fruit();
   apple.searchVector("Apple");
}

または、searchFruit クラスに検索関数を記述したい場合、作成したベクトルをそのクラスに渡すにはどうすればよいですか。

4

1 に答える 1

1

まず、おそらく a を使用したくないでしょうVector。おそらくArrayList. ベクトルは、ほとんどすべての場合に単に不必要な多くの手間のかかる同期を使用します。

あなたの質問に関しては、あなたが何を達成しようとしているのか正確には不明であるため、そのままで答えるのは少し難しいです. プログラミングをするときは、問題のドメインについて考え、何を達成しようとしているのかを理解することにもう少し時間を費やすことをお勧めします。

たとえば、果物のコレクションを扱うプログラムを書いているようです。その場合、おそらく少なくとも 2 種類のオブジェクトをモデル化する必要があります。あなたの果物、そしてあなたの果物のコレクション (簡単にするために、それをフルーツ バスケットと呼びましょう)。

AFruitには、少なくとも名前 (リンゴ、オレンジなど) と、その他の情報 (サイズ、重量、色など) が含まれている可能性があります。

FruitBasketはだけでなく、フルーツの追加、フルーツの削除、フルーツの検索など、List<Fruit>のコレクションと対話するためのいくつかの便利なメソッドがあります(もちろん、これらのメソッドはすべて によって実装されますが、これは宿題のように見えるので、それを通り過ぎます。FruitCollection

現状では、あなたのデザインは十分に混乱しているので、特定の何かを指摘して「それはあなたの問題だ!」と言うのは難しいです。それを製図板に戻し、現実世界のオブジェクトの観点からモデル化してみてください。

于 2013-09-28T20:53:36.503 に答える