アプリ版:「スタンプのみでお礼する」機能のリリースについて

Javaの問題なんですが、何故cmenu.showData();になるのか分からないです。
cmenuは拡張for文の任意の変数名ですよね。これを書く事でどうなるんでしょうか?

「Javaの問題なんですが、何故cmenu」の質問画像

A 回答 (3件)

for (cmenu : courseMenu) {


_ cmenu.showData();
}

これを拡張構文を使わない様に書き換えると以下になります。

for (i=0; i<courseMenu.length; i++) {
_ cmenu = courseMenu[i];
_ cmenu.showData();
}

Java におけるオブジェクトはすべて「参照」なので、変数 cmenu に代入しても値コピーされず同じオブジェクトを指し示します。そのため
cmenu.showData() は
courseMenu[i].showData() とした場合と
同じ結果になります。
    • good
    • 0

for(CourseMenu cmenu: courseMenu){cmenu....}



for(int i=0;i<courseMenu.length;i++ ){courseMenu[i].....}
と同様の動作をします。
CourseMenu クラスの詳細は記述されていませんが
setCourseMenu や showData がありますから、 setdiscount もあると思います。
よって、(33)は、4。
(34)はsetdiscount(discountList);のようなものだと思います。
cmenu.showData();は"メニュー Lunch_A,価格800,割引率1 720,割引率2 680,割引率3 640 などと表示するメソッドと思われます。
    • good
    • 0

> 何故cmenu.showData();になるのか分からないです。



うん、僕も分からんです。

ってか、CourseMenuと言うクラスを定義したファイルが別にあるんじゃないの?
そこにsetCouseMenuとかshowDataとかメソッドが定義されてると思うんだけど。
それがないと何も言えないわなぁ。
これだけ読んでもサッパリ、です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!