| 学籍番号 | 氏名 |
(2 × 3)
| (1) | (B) | (2) | (A) |
(8 × 3)
| (1) | circ.contains(e.getPoint()) | ||
| (2) | e.getClickCount() >= 2 | ||
| (3) | e.getButton() == MouseEvent.BUTTON3 | ||
| (4-1) | e.getX() | ||
| (5) | g.setClip(circ) | ||
| (6) | extends JPanel | ||
| (7) | new MouseListener() { | ||
| /* 元の 33 行目から 59 行目と同じ */ | |||
| } | |||
| /* あるいは */ | |||
| new MouseAdapter() { | |||
| @Override | |||
| /* 元の 33 行目から 55 行目と同じ */ | |||
| } | |||
| (8) | e -> { | ||
| /* 元の 22 行目から 30 行目と同じ */ | |||
| } | |||
典型的なフタコブラクダになってしまっている。 15点以下の人は
(D) と間違えた人が 2 割ほどいるが、double のようなプリミティブ型は、
総称クラスの型パラメーターになることはできない。
(C) を選んでしまう人が意外に多かったが、Java はコンパイル時に型チェックをおこなうので動的型付けではない。
(D) は絶対選んではいけない選択肢である。Java と JavaScript は名前が似ている以外は、何の関係もない。
正答率が低い。
circ が解答に含まれていないような珍回答も多かった。
circ.contains(e) という誤答が多かったが、
MouseEvent は Point のサブクラスではない。
circ.contains(e.getPoint()) == true
という解答も多かった。間違いとは言えないが == true
は不要である。
これを間違えるようでは、Java を勉強した甲斐がないのだが、
期待しているほど正答率が良くない。e が解答に含まれていないような間違いも多かった。
MouseEvent.getClickCount() >= 2 など、
オブジェクト指向の基本であるメソッド呼出しがわかっていない解答も多かった。
(2) と同様の間違いに加えて、
BUTTON3 に MouseEvent. が付いていないという間違いが多かった。
BUTTON3 は MouseEvent クラスに定義されているクラスフィールドである。
この 2 問は絶対に落としてはいけない。
SearchLight7 クラスが ActionListener や
MouseListener を実装しているわけではないので、
implements Listener や
implements MouseListener
をつけてはいけない。
MouseListener のあとに () をつけていない誤答が多い。
また new MouseListener() … としたら
33 行目から 59 行目までが必要である。言い換えれば
mouseClicked, mousePressed, mouseReleased,
mouseEntered, mouseExited すべてを定義する必要がある。
一方 new MouseAdapter() … ならば 33 行目から 59 行目まで、
言い換えれば mouseClicked だけでよい。(ただしこの場合は
@Override をつけるほうが良い)
e -> { /* 元の 21 行目から 31 行目と同じ */ }
としている誤答があったが、ブロックの中({ … })に入るのは文の並びである。