レベルエンター山本大のブログ

面白いプログラミング教育を若い人たちに

初心者にプログラミングを教える時の例集

 

do while

 テストと追試

  →40点以下再試験。

  テスト1回目は、全員必ず受けるが、40点以下なら再試験。

  再試験でまだ40点以下なら再再試験。40点を超えるまで繰り返し。

 

多次元配列:

 表や立方体を例えに出すと、4次元で詰むので

 リストの中にリストが入っている例として「新幹線の座席」を使う

 ABCDEの列が20列ならんでいることと、そういった配列が

 1−16号車まで並んでいる。

 そういった車両が、のぞみxxxなどと番号づけされている。

 

インスタンス・オブジェクト

 同一型のデータ集合である配列と比較して、

 各データに名前付き・型付きのデータ項目が持てる。

 おまけに、そのデータを専門に扱う処理が書ける。

 

参照型

 フォルダの実体とショートカット。ショートカットで開いて操作したら、

 サーバーの実体が更新される。

 

抽象クラス・インターフェイス

 人事部や学校の先生から配られる、日報フォーマットやテストの回答用紙。

 抽象メソッド部分が記入欄で、配られた側は記入欄のみを記載する。

 抽象メソッドを実装することが強制され、使う側はルールに乗っ取っていることを

 インターフェイスは、抽象メソッドのみの集まり、ルールセット。劣化しにくい

 抽象クラスは、式やマクロ入りのテンプレート。

 マクロ入りや式入りは経年劣化やバグの可能性あり、取扱注意。

 

メソッド

 なんどもやる仕事を名前をつけて定型化

 例えば、日直の仕事の定型化

 ホワイトボードを消す、終業後消灯する。帰宅後チェックリストによるチェック。

 掃除して()

  ぬいぐるみをタンスにしまう。

  ブロックを箱にしまう。

  拭き掃除をする。

 

メソッド引数なし、戻り値なし。

 →消灯する。(メソッド名のみ)

 

定義側

class DayDuty{

  void lightsOff(){

     // 消灯処理

  }

}

 

 

呼び出し側

 DayDuty dd = new DayDuty();

 dd.lightsOff();

 

 

メソッド引数あり、戻り値なし。

 →テスト配って()

class DayDuty{

  void passOut(Test[] tests ){

     // テスト問題を配る

  }  

}

 

メソッド引数なし、戻り値あり。

 →昨日のチェック結果を報告して()

 →テスト答案回収して()

 

メソッド引数あり、戻り値あり

 →300円で、パン買ってきて()

 →テストを配って、回収して()

 

オーバーロード

 コピーしろと命令、渡すものが紙なのかパソコンなのかで、

 仕事をする側は動きが異なる。紙ならコピー機でコピーする

 パソコンならハードディスクをコピーする。

 

カプセル化

 携帯電話の電波の3本線表示を勝手に操作できたとしても意味がない。

 内部処理を反映した結果だから意味がある。

 →操作させないことも大事。

 

インターフェイス(ルールブック)

 日直の仕事とは(ルールブック)

 人事部は、誰が日直だとしてもルールを教えたはずの前提なので、

 ルール通りに命令する。

 → 朝会仕切れ()など

  

インターフェイスの役割

 コンポーネント(再利用可能な独立部品)のつなぎ目。

  つなぎ目を規格化するもの

 

インターフェイスを複数持つ意味

 パソコンだと、USBやHDMIVGAなど複数のインターフェイスの実装を持つことができるようなもの。

 

 ポリモフィズム

 屋台街でくれと言ってまわる