
買い物かごクラスのプログラムを作っています。
このソースはフィールドにListを持たせているのですが、ArrayList を継承
してCartクラスを作りたいです。そうすることで、CartクラスのaddItem()
メソッドやremoveItem()メソッドはmainでメソッドを呼び出せば良いため、
不要になると思うのですが、合計金額を求めるときに、どのように商品値段
を参照していいのかわかりません。
また、ArrayList を継承する場合、public class Cart extends ArrayList
という書き方で良いのでしょうか?
public class Cart {
List<Item> itemList = new ArrayList<Item>();
public ShoppingCart(){}
//商品をカートに追加
public void addItem(Item item){
itemList.add(item);
}
//カート内に入っている商品の合計金額を返却
public int getTotalPrice(){
int total=0;
for(int i=0;i<getItemSize();i++){
total+=itemList.get(i).getPrice();
}
return total;
}
//リストの指定された位置にある要素を削除
public void removeItem(int index){
itemList.remove(index);
}
}
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
既に指摘されていますが継承は「is a」関係の時に用いるものです。
「has a」では使わないほうがいいと思います。これはC#かJavaに関わらずオブジェクト指向プログラミングの基本です。
「買い物かごはリストである」のか「買い物かごをリストを使って実装する」かの違いです。
No.1
- 回答日時:
itemList がthis になるだけじゃないですか?
継承する事でアクセサメソッドを省けるという事ですが、それがどれほど効率的なのかエレガントなのか、微妙ですけどね。
まぁでも、なんでもやってみるのは良い事でしょう。
C#にすっかり毒された私は、今となってはできる限り継承は使わないというスタンスですが・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java java final 1 2022/06/10 22:49
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# クラスのメンバ変数を基準に並べ替えをしたい 5 2022/12/25 17:40
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レコード件数の表示
-
別クラスのmainメソッドの実行
-
Java初級 引数に適用できません
-
Java初心者です、エラーの意味...
-
C# 点の描き方をおしえてくだ...
-
Javaの関数名が長い?
-
StringBufferからStringへキャ...
-
String.containsの反対機能はあ...
-
クラスを作るとメソッドの数が...
-
問題の意味が分かりません
-
YYYYMMDD書式の日付に対する適...
-
C# asp.net HTMLタグのエスケ...
-
Javaの問題なんですが、練習14-...
-
contextってなんですか?
-
アプレットのinitは、なせ"publ...
-
C# でメソッドに送られてきたOb...
-
スーパークラスからサブクラス...
-
シェルスクリプトからのJavaメ...
-
メソッドの引数に指定されてい...
-
「タイプ初期化子が例外をスロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java初級 引数に適用できません
-
String.containsの反対機能はあ...
-
abstract と static を一緒に付...
-
レコード件数の表示
-
コマンドライン引数のチェック
-
StringBufferからStringへキャ...
-
別クラスのmainメソッドの実行
-
Google Apps Script で getRang...
-
JUnitのテストメソッドごとのメ...
-
なぜprotected overrideなのか
-
C言語での文字列より値を抜き出す
-
Java初心者です、エラーの意味...
-
メソッド宣言の戻り値の型にク...
-
シェルスクリプトからのJavaメ...
-
YYYYMMDD書式の日付に対する適...
-
メソッドの引数に指定されてい...
-
System.out.print
-
クラスを作るとメソッドの数が...
-
Strutsでチェックボックスの値...
-
public static void main (Stri...
おすすめ情報