Top / Graphics / 2016 / ex07

グラフィックス基礎及び実習 2016年度 第7回 [edit]

課題A(special) [edit]

この課題のやり方については授業時に指示します.

こちらへ → Graphics/2016/ex07A

課題B(self) 完成目標: 今回の実習終了まで [edit]

以下に出てくる T71 クラス は HTurtle クラスを利用する. また,HTurtle クラスは Turtle クラスを拡張したものとなっている. 次のような手順でこれらのプログラムを作成しなさい.

  1. 教科書 p.60-64 を読む.
  2. p.61 の HTurtle.java を作成.
  3. コンパイルしてみる.エラーが出たら修正.ただし,
    $ java HTurtle
    と実行してもエラーになる(HTurtle.javaにはmainがないため)だけなので注意.
  4. 教科書 p.60 のHTurtleクラスのAPI仕様を見て理解しながら,p.61の T71.java を作成.
  5. コンパイルしてみる.エラーが出たら修正.
  6. 実行してみる.エラーが出たら修正.
    $ java T71

check

  • 次の文の空白部分には「Turtle」,「HTurtle」,「インスタンス」,「クラス」,「ほげ」のいずれかが入る. それぞれ何が入るか考えなさい(白字で正解が書いてある)

    T71.javaの変数 m は,4行目をみると分かるように HTurtle クラスのオブジェクトを指す変数である. 7行目や9行目では,mの指すオブジェクトに対して house や polygon という インスタンス メソッドを呼び出している.これらのメソッドは HTurtle クラスで定義されている. このクラスの定義は,ソースファイル HTurtle.java に書かれている.

    一方,8行目などでは,mの指すオブジェクトに対して up, lt, fd 等の Turtle クラスで定義された インスタンス メソッドが呼び出せている.これは,HTurtle クラスがTurtle クラスを拡張して定義されたたものだからである.

    また,6行目では,TurtleFrame クラスの インスタンス メソッド add に対して,HTurtle クラスのインスタンスを指す変数 m を渡している. しかし,この add メソッドは,本来は Turtle クラスのインスタンスを指す変数を引数にとるものである. このようなプログラムが動作するのも,Turtle クラスを拡張して HTurtle クラスを定義したからである.

課題C(self) 完成目標: 今回の実習終了まで [edit]

上記の課題と同様に,教科書を読んで理解しながら, p.67 の T72.java と Stepper.java を作成して動作確認しなさい.

StepperクラスのAPI仕様は p.66 に記されている. ただし,古い刷の教科書には次の誤植があるので注意.

p.66 本文下から4行目 誤:「HTurtleクラスを拡張」→ 正:「Turtleクラスを拡張」

p.66 StepperクラスのAPI仕様 誤:「HTurtleクラスを拡張している」→ 正:「Turtleクラスを拡張している」

check

  • 次の文の空白部分には「Turtle」,「HTurtle」,「Stepper」,「インスタンス」,「クラス」,「ほげおくん」のいずれかが入る. それぞれ何が入るか考えなさい(白字で正解が書いてある)

    T72.javaの変数 m1, m2 は Stepper クラスのオブジェクトを指す変数である. T72.javaの6行目の2文では,m1の指すオブジェクトがもつ インスタンス 変数に値を代入している. これらの インスタンス 変数は Stepper クラスで定義されたものである.

    また,10行目では,m2の指すオブジェクトに対して step という インスタンス メソッドを呼び出している.このメソッドは Stepper クラスで定義されたものである. このクラスの定義はソースファイル Stepper.java に書かれている.

    一方,7行目では,m2の指すオブジェクトに対して up等の Turtle クラスで定義された インスタンス メソッドが呼び出せている.これは,Stepper クラスがTurtle クラスを拡張して定義されたたものだからである.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-06-02 (木) 15:26:51 (1057d)