「クラスとは何か」を優しく教える方法

クラスとは何か、を入門者にも優しく教えるにはどうしたら良いんでしょうかね〜。抽象データ型経由で教える、と言うのも一つの手だと思うのです。
例えば、

  1. 型ってつまるところ「どのように操作できるか」って事なんだよ
  2. 型を作るには、どのように操作できるか(メソッド・インターフェイス)とその内部実装(メンバフィールドとメソッドの実装)が出来る仕組みが言語にあればいいんだよ。
  3. この「型」をクラス、その型の具体的な「値」を「インスタンス」と言いますよ〜。

と教えておいて、

  1. オブジェクトとは、Javaでは =インスタンスと考えてOKです。
  2. 世の中の言語のなかには、クラスもオブジェクトの一種という物もあるので、「インスタンス」と「オブジェクト」二つの用語があるのですよ〜。

と教えといて、

  1. 本当はクラスもオブジェクトにして、メソッドやフィールドを持たせたいところだったのだけど、そうなると、いろいろ問題が出てきます。
  2. でもメソッドやフィールドがクラスにもあると便利です。
  3. なので、Javaでは、静的なメソッドやフィールドをクラスの名前空間に所属させる方法を取っています。(事実上、クラスメソッドやクラスフィールドと同等のことができます)

となると思いますが、・・・いや、これは逆に解りにくいかも(^^; (どうなんだろ?)