オブジェクト指向言語・中間テスト解答例(2021 年 06 月 17 日)

学籍番号         氏名            

  1. (4 × 2)

    (ⅰ) (C), (D) (ⅱ) (A), (C)

  2. (5,2,2,4,2,4,2,5,6)

    (ⅰ) extends JPanel implements KeyListener
    (ⅱ) points.removeLast()
    (ⅲ) points.removeFirst()
    (ⅳ) points.addLast(new int[] {x, y})
    (ⅴ) points.size()
    (ⅵ) Color.getHSBColor(h, 1, 1) または Color.getHSBColor(h, 1.0f, 1.0f)
    (ⅶ) points.get(i)
    (ⅷ) extends JPanel
    (ⅸ) // ☆ は DiaDraw.java の 17 行目から 39 行目
    addKeyListener(new KeyListener() {
    public void keyTyped(KeyEvent e) {
    }
    public void keyPressed(KeyEvent e) {}
    public void keyReleased(KeyEvent e) {}
    })
     
     
     
     
     

解説

    1. (A), (F) はエラーになりコンパイルできない。 (B) はそのまま「${x} の 2 倍は、${x * 2} です。」と出力される。 「*」演算子は「+」演算子より優先するので、(D) は「4 の 2 倍は、8 です。」と出力される。 「+」演算子は左から先に計算するので、(E) は「4 の 2 倍は、44 です。」と出力される。

    2. (A) Java では public なクラスとファイル名は一致させなければいけないので、 必然的に一つのファイルに定義できる public なクラスは一つだけになる。

      (B) Java と JavaScript は名前が似ているだけで何の関係もない。

      (C) Java ではスーパークラスは一つだけで、正しい。

      (D) C と Java も文法が似ている、以上の関係は何もない。

  1. (ⅰ) Listener の綴りを間違っている人がときどきいる。

    (ⅱ) e.removeLast(), k.removeLast(), p.removeLast() などの誤答が目立った。

    (ⅳ) new int[] {x, y} のところまで正しく書けている解答は少なかった。

    (ⅵ) 1.0double 型になるので、厳密にいうと Color.getHSBColor(h, 1.0, 1.0) ではエラーになる。 また、Color. を省略するためには、import static java.awt.Color.* が必要になる。

    (ⅷ) この DiaDraw2 クラスが keyTyped などを実装しているわけではないので implements KeyListener は必要ない。

    (ⅸ) keyPressed, keyReleased メソッドの定義も必要である。