自分でも何がわかっていないのかが把握できていないので上手く説明ができていないのですが、伝わらない部分は補足依頼で教えていただけると大変助かります。よろしくお願い致します。
Java silver SE8の配列インスタンスと要素の値についての問題です。
次のプログラムの実行結果を選択肢から選べ というものです。
public class Item { String name; int price = 100; }
public class Main { public static void main(String[] args) { Item[] items = new Item[3]; int total = 0; for (int i=0; i<items.length; i++) { total += items[i].price; } System.out.println(total); } }
正解は「実行時に例外がスローされる」で、解説の一部には「初心者が陥りやすい間違いとして、オブジェクト型配列を生成したときに、オブジェクトそのものを同時に作っていると錯覚しがちな点が挙げられる。」とあります。
オブジェクトであればtotal += オブジェクト名.price;
でオブジェクトごとのpriceをtotalに代入できるのは理解しているのですが、設問のようなtotal += 配列変数名[].price;
では配列の要素ごとのpriceをtotalに代入しているということでしょうか?それだとどんな場合でも例外になってしまうように思えるのですが、このような文(配列変数名[].
)を使うプログラムの例を教えてほしいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/24 15:30