2

この質問をどのように定式化するかについて、私は少し確信が持てませんでした。それはオブジェクト指向の考え方に関するものであり、私の場合は Java ですが、一般的な概念に関するものです。

配列と継承などを実践するために、車を配列に格納する People オブジェクトが所有できる Car オブジェクトがある小さなシステムを作成したいと考えています。車には価値があり、People オブジェクトは互いにお金で車を売買できます。

私の質問:

1年を経過させるために呼び出すことができるサブルーチンが必要です。これにより、1年カウンターが増加し、現在プログラムに存在するすべての車の価格が下がり、「年齢」が1増加します。それ。

このようなことを行う方法がわかりません。特定のオブジェクトではなく、特定のクラスのすべてのオブジェクトを対象とするようなアクションを実行するにはどうすればよいですか? このタイプの操作は大きなプログラムでは非常に一般的だと思いますが、通常はどのように行っていますか?

4

3 に答える 3

4

あなたは本当にできません。少なくともきれいではありません。

まず、オブジェクトへの参照を保持する必要があります。そうしないCarと、ガベージ コレクション (メモリから削除) が行われます。

それらへの参照を (おそらく People オブジェクトの下で) 保持しているため、すべての人を調べて車を取得するか、すべてArrayListの車を保持する別のコンテナー (たとえば、 ) を保持することができます。つまり、車は人または別のコンテナから入手できます。次に、コンテナを繰り返し処理し、車で希望どおりに実行します。

于 2013-05-03T11:15:09.630 に答える
4

int buildYear車を 1 年エージングするには、 Car クラス内のプロパティが必要です。

質問の後半。各 Car はプロパティを取得しますfloat amortizationPercentPerYear。車の年式、償却率、初期価格に基づいて、正確な価格を計算できます。

于 2013-05-03T11:15:16.153 に答える