クラスの説明

先日、プログラミングを教えているときに気付いたこと。
クラスの教え方だ。

C++には構造体があるから、クラスも理解しやすい。
構造体に関数が入っただけだからね。

他の言語には、構造体が無いため、
速攻でクラスに入る。
いろんな知識が総動員されるため、理解に苦しむ生徒さんが多い。

まずは、構造体的な使い方から教えてもいいのかもしれない。


class Customer {
var $_name;
var $_address;
var $_tel;
var $_barthYear;
var $_barthMonth;
var $_barthDay;
}

そして
上の顧客クラスには年齢が入っていないため、
その年齢を計算する関数を入れることもできる、と説明する。
class Customer {
var $_name;
var $_address;
var $_tel;
var $_barthYear;
var $_barthMonth;
var $_barthDay;
function age() {
// $_barthYear,$_barthMonth,$_barthDayを使い、年齢を計算
}
}

どうだろうか。 進化の歴史通りに説明すればそれほど難しいものでも無いんじゃないかと思う。
たいていの生徒さんは変数をまとめることができると言う時点で、これは便利だ!と関心を持ってくれるので、その後の話がスムーズに進む。

いかに関心を持ってもらえるか。が一番大事なのかもね。