第13講 クラスの学習
第1話 クラスをより正確に理解するための説明

第2講 変数を理解しようその1 

 第1話 クラスを構成するもの
のおいて、クラスとは
class クラス名{
  フィールド;
  メソッド;
}
すなわち、
class クラス名{
  属性;
  働き;
}
であると説明しました。
あるいは、C++に親しんでいる人のために
class クラス名{
  メンバー変数;
  メンバー関数;
}
とも言い換えました。

しかし、そう説明されても初心者にはピンとこないというところが正直なところでしょう。
この講では、クラスをもう少し正確に説明し、
クラスのイメージを掴んでいただくことにします。

メンバー変数とメンバー関数をひっくるめてメンバーといえば、クラスとは
class クラス名{
  メンバー;
}
ということになり、クラスとはメンバーは複数から構成されているのが普通ですから、
class クラス名{
  メンバー1;
  メンバー2;
  メンバー3;
     ・
     ・
     ・
}
ここから皆さん何を連想しますか。
そうですね。
学校のクラスを思い浮かべませんか。
クラスとは、例えば生徒40名によって構成されています。
そして、クラスには1年1組のような名前がついています。

とりあえず、クラスとは学校のクラスをイメージしていただければよいわけですが、
若干の修正が必要です。

学校のクラスというと、
一方では、
自分が通っていた何々小学校3年2組とか、何々中学校3年5組とか、何々高等学校1年A組などと、
自分が通っていたクラスを思い浮かべます。

それと同時に皆さんは、クラスという言葉を聞くと、自分の友人のクラスや自分の子供のクラスなどがあることを知っています。
また、金八先生などのドラマで描かれているクラスも思い浮かべます。

クラスは、具体的には様々な姿を取っています。
そこに共通しているのは、HRがあってそこに複数の児童・生徒がいることです。

皆さんがクラスという言葉を聞いたとき、2つの意味を同時に理解しています。
それは、具体的なクラスと一般的な意味のクラスです。
猫という言葉を考えてください。
猫は、一方ではタマやミケなどの具体的な個々の猫であると同時に、
「ニャー」となく動物一般です。

言葉とは基本的には、具体と普遍の2つの側面をもっています。
家は、煉瓦造りだったり、木造だったり、鉄筋だったりします。
そして、Aさんの家だったり、Bさんの家だったりします。
家という言葉は、そういう具体的な家と同時に、住むところという共通の属性をもった普遍としての家の側面ももっています。

クラスのイメージは、とりあえず学校のクラスのイメージでよいのですが、
そのクラスは、普遍的な意味でのクラスです。
つまり、クラス一般です。

普遍と具体という説明がぴんと来ない方は、
雛形とそれから作った具体的な文書の関係を思い浮かべてください。
例えば、運動会のお知らせという通知を作ることを考えてみましょう。
基本的には、お知らせの通知は、時候の挨拶、目的、日時、場所などからなります。
これを毎回最初から作っておいたのでは、大変です。
そこで運動会のお知らせ雛形を作っておいて、
時候の挨拶や日時を入れれば簡単に作れるようにしませんか。


普遍と具体とは、通知の雛形とそこから作った2012年9月15付け通知の関係です。

クラスとは、具体的な~県立~高等学校1年4組ではなく、雛形としてのクラスです。

雛形を作っておいてそれを具体的な通知にするという考え方が、オブジェクト指向という難しい言葉の意味です。
雛形を実体化する・・・こらがオブジェクト指向です。

ひょっとすると、雛形とそこから作った通知文書より、
設計図とそれから作ったものの例えの方がわかりやすいかもしれません。
家の設計図とその設計図から作った家
設計図から同じ家をいくらでも造ることができます。
ですから、車の設計図とそこから作った実際の車の方がイメージしやすいでしょうか。
あるいは、本講義の第2講 フィールド=変数を理解しよう1 第1話 クラスとは?
で使った比喩、鯛焼きの型とその方に流し込んで作った鯛焼きの関係の方が理解しやすいでしょうか。
鯛焼きの型ー鯛焼きがクラスーオブジェクトの典型的なイメージです。

最初は学校のクラスを比喩として考えましたが、
今やそのイメージから離れ、クラスとは雛形または設計図または型と捉えてください。
通知の雛形がクラスであり、
そこに2013/04/01などの日付を入れた通知文がオブジェクト(物)です。
車の設計図がクラスで、設計図から作った車がオブジェクトです。
鯛焼きの型がクラスであり、その型から作った鯛焼きがオブジェクトです。


雛形の実体化???
設計図から実際に物を作る???
そうです。
人間は、具体例がないと理解できないものです。
そこで、第2話では具体例を作って説明しましょう。


第12講第8話へ 第2話へ

戻る

VB講義へ
VB講義基礎へ
vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座

初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部