オブジェクト指向言語・中間試験コメント

  1. 正解: (B), (C)
    一つしか選択していない解答は -2 点

  2. 正解: (B)
    (B) 以外にもう一つ選択している解答は -2 点

    Java は C や JavaScript に文法が似ているが、それ以上の関係はない。

(ⅰ), (ⅱ) の正解率はそれぞれ 74.1%, 85.2% だった。

  1. 正解:

      implements KeyListener

    正解率は約 84.4% だった。

  2. 正解:

      e.getWhen()

    正解率は約 74.4% だった。KeyEvent.getWhen() などの間違いが多い。

  3. 正解:

      e.isShiftDown()

    正解率は約 72.6% だった。

(ⅱ), (ⅲ) の正解率は期待しているよりも低い。 (この問題に関しては部分点はほとんどなかったので、満点か零点かである。) getWhen, isShiftDownKeyEvent クラス (またはそのスーパークラス)のメソッドで、プログラム中に KeyEvent クラスのオブジェクトは e しかないので、 e.getWhen(), e.isShiftDown しかありえない。 getWhen(), KeyEvent.getWhen()getWhen(this) のような間違いが多かった。 この問題ができなければ、Java を学ぶ甲斐がないと言っても過言でない。

  1. 正解:

    extends JPanel implements ActionListener

    得点率は 82.2 % だった。

  2. 正解:

      source == input 

    得点率は 60 % だった。

  3. 正解:

      source == push 

    得点率は 60 % だった。

  4. 正解:

      extends JPanel

    このクラス自体に actionPerformed メソッドはないのだから、 implements ActionListener をつけてはいけない。 得点率は 97.8 % だった。

  5. 正解:

      new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            text = input.getText();
            label.setText(text);
         }
      }
    

    label.setText(text); を忘れている解答が多かった。 一方 repaint(); は必要ない。 得点率は 84.9 % だった。

  6. 正解:

      e -> {
         text += emoji;
         label.setText(text);
      }
    

    得点率は 88.4 % だった。

匿名クラスとラムダ式については、 問題用紙の末尾にこれらを使った例題プログラムを掲載しているのに、 それを有効に活用できていない人がいるようだった。


Koji Kagawa (kagawa@eng.〜)
(〜の部分は SPAM mail 予防のため省略します。)