オブジェクト指向について語る

何気にパソコン教室の先生をしている私。
目的はもちろん自分の講座を開くための勉強なのだが、
素人(とほぼ同等)にJavaなりのオブジェクト指向言語を教えるのは
どのような手順が良いんだろうかと考える日々である。

まず、オブジェクト指向の概念をざっとやってから
プログラムの基本→クラスバリバリとやるべきだろうか?

プログラムの基本からオブジェクト指向を交えつつクラスバリバリとしていくべきだろうか・・・

まぁ、いろいろと試行錯誤なわけです。

なんも知らない人に説明するにはやっぱりメタファが一番効果的なわけで
いろんな喩えを考えてその人にあったものを思いつかなければならんと思うわけですわ。

難所は継承とかポリモーフィズムかと思ってたんだけど
その手前のクラスで躓く人もいるんだよね。

どうやら、インスタンス毎に情報が違うってのが良くわからんらしい。
クラスとインスタンスがどういう関係なのか?ってのがあいまいなんだろうねぇ。

なんか良い喩えはないかなーと考えてたところ
ちょっと良い喩えが浮かんだ。

まず、前提としてJavaの構文は大体理解しているものとします。。

クラスはねぇ 工場みたいなもんなんよ。
そんでな、工場になんか作ってくれーって頼む時は依頼書だすっしょ?
それがコンストラクタなんよ。 コンストラクタっちゅーのは
クラスと同じ名前のメソッドの事な。
つまり
class
だったら、
SampleClass();
がコンストラクタや。
依頼書の出し方は決まってて
SampleClass class = new SampleClass();
ってコンストラクタの前にnewって書くんよ。 まさに作ってくれーや。
前のSampleClass class
は納品側。 こっちはクラス名で変数宣言すれば良いから。
なんでって? intにString入れれんのと一緒や。
だから、なんか作ってくれーって出す時に、注文付けたい時は
クラスに引数つきのコンストラクタ作るんよ。
SampleClass(String typeCode)
とかな。 そうすると、そのパラメータ見て工場が作ってくれるんよ。
どや? わかった??