質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

解決済

ArrayListに商品情報を登録して表示させたい

trainingnow
trainingnow

総合スコア22

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

1回答

0評価

0クリップ

197閲覧

投稿2022/01/27 06:58

ShopMainクラスで実行されるshop.addItemの内容をShopクラスのArrayListに登録して表示させるメソッドを実装したい。
4つの商品情報を並べて表示したい。
↓の状況だとshop.addItemで最後のメソッドのみ拾われてしまう。

Java

public class ShopMain { public static void main(String[] args) { Shop shop = new Shop(); shop.addItem(new Video("V0001","ローマの休日 ",2980,6,"ウィリアム・ワイラー")); shop.addItem(new Video("V0002","風と共に去りぬ",2980,5,"ヴィクター・フレミング")); shop.addItem(new CD( "C0001","ビートルズ全集",3000,1,"ビートルズ")); shop.addItem(new CD( "C0002","スリラー   ",2500,9,"マイケル・ジャクソン")); System.out.println("CODE\tタイトル\t価格\t在庫\t監督/アーティスト"); System.out.println("--------------------------------------------------------------"); shop.showItem(); System.out.println("--------------------------------------------------------------"); System.out.println(); shop.sellItem("V0001"); shop.sellItem("C0002"); System.out.println(); System.out.println("CODE\tタイトル\t価格\t在庫\t監督/アーティスト"); System.out.println("--------------------------------------------------------------"); shop.showItem(); System.out.println("--------------------------------------------------------------"); } }

Java

public class Shop { private ArrayList<String> items; //商品情報を格納するリスト Item cd = new CD(null, null, 0, 0, null); Item video = new Video(null, null, 0, 0, null); /** * @param items * コンストラクタ */ public Shop() { ArrayList<String> items = new ArrayList<>(); this.items = items; } //商品情報をitemsに登録する public void addItem(Item item) { items.add(item.getItemID()); items.add(item.getItemName()); items.add(String.valueOf(item.getPrice())); items.add(String.valueOf(item.getStock())); items.add(cd.getArtist()); items.add(video.getMovieDirector()); System.out.println("アイテムサイズ "+items.size()); } //itemsに登録されている商品情報を全て画面に表示する public void showItem() { cd.printItemDetail(); video.printItemDetail(); System.out.println(items); } //itemsに登録されている商品情報から該当する商品を検索しメッセージを表示する public void sellItem(String itemID) { // System.out.println(items.get(1) + "を" + items.get(2) + "で販売しました"); // Item.decrementStock(); } } class Item { private static String itemID; //商品ID private static String itemName; //商品名 private static int price; //値段 private static int stock; //在庫数 //デフォルトコンストラクタ public Item() {} public String getMovieDirector() { return null; } public String getArtist() { return null; } //コンストラクタ public Item(String itemID, String itemName, int price, int stock) { Item.itemID = itemID; Item.itemName = itemName; Item.price = price; Item.stock = stock; } //商品ID、商品名、値段、在庫数を表示するメソッド public void printItemDetail() { System.out.println(itemID + "\t"+ itemName + "\t" + price + "円\t" + stock + "個"); } /** * @return itemID * 商品ID を返却するメソッド */ public String getItemID() { return itemID; } /** * @return itemName * 商品名を返却するメソッド */ public String getItemName() { return itemName; } /** * @return price * 値段を返却するメソッド */ public int getPrice() { return price; } public int getStock() { return stock; } //在庫数から1個販売するメソッド public static void decrementStock() { stock -= 1; } } class CD extends Item { private static String artist; //アーティスト名 /** * @param itemID * @param itemName * @param price * @param stock * コンストラクタ */ public CD(String itemID, String itemName, int price, int stock, String artist) { super(itemID, itemName, price, stock); CD.artist = artist; } public String getArtist() { return artist; } //商品ID、商品名、値段、在庫数、アーティスト名を表示するメソッド @Override public void printItemDetail() { System.out.println(super.getItemID() + "\t" + super.getItemName() + "\t" + super.getPrice() + "円\t" + super.getStock() + "個\t" + getArtist()); } } class Video extends Item { private static String movieDirector; //監督名 /** * @param movieDirector * コンストラクタ */ public Video(String itemID, String itemName, int price, int stock, String movieDirector) { super(itemID, itemName, price, stock); Video.movieDirector = movieDirector; } public String getMovieDirector() { return movieDirector; } //。商品ID、商品名、値段、在庫数、監督名を表示するメソッド @Override public void printItemDetail() { System.out.println(super.getItemID() + "\t" + super.getItemName() + "\t" + super.getPrice() + "円\t" + super.getStock() + "個\t" + getMovieDirector()); }

宜しくお願い致します。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。