クラス
クラスとは?
クラスはオブジェクト指向プログラミングの機能の一つです。
クラスを簡単に説明すると「プログラムを利用するための部品をつくるための設計図」となります。
設計図なのでもちろん部品を作っていきます。

ここでは、例として原子のクラスを使って説明したいと思います。
設計図(クラス)の名前はAtomic(英語で原子)としました。
部品として水素を入れておきました。
水素は原子の種類です。だから原子の設計図の部品として水素をいれました。
他で構成したい場合は以降の章で説明していきます。
このようにプログラミングのように実体のないものだけでなく実体のあるものでもクラスを作ることは可能です。
設計図とその中に何が必要かを考えるのがオブジェクト指向のポイントとなります。

設計図の中も部品で構成されています。
つまり設計図自体も部品になります。
部品の事をpythonではオブジェクトと呼びます。
オブジェクトに関してはオブジェクトの章でお話します。
設計図からつくられた部品をインスタンスオブジェクトと呼びます。
このインスタンスオブジェクトとオブジェクトは同じものです。
インスタンスオブジェクトは設計図(クラス)からつくられたもので
オブジェクトは全体の事を言います。注意してください。
オブジェクトに関しては次のセクションでお話します。
ただし設計図から作る部品と設計図内の部品は別物なので気をつけてください。



原子のクラスではどのようになっているかを図で確認して見てください。
原子クラスからaという部品を作っているのが図を見てもらえたらわかると思います。


原子のクラスと原子のクラスから作った部品aは以下のような構造になっています。

原子のクラスから作った部品aを作る際には以下のように書きます。

今までの事をまとめると以下ようになります。

設計図と設計図を組み合わせてまた新たな設計図を作ることもできます。
また設計図内の部品を組み合わせて新たな設計図も作る事もできます。


そのことから設計図を組み合わせてHTMLのモジュールや掲示板などを作る事ができます。
最終課題の章では実際にHTMLのモジュールと掲示板をつくります。
設計するのもオブジェクト指向では重要な部分です。
それでは実際に原子クラスを例を見ながら動かしてください。
注意:pythonで動かす際にH = "水素"まで打てたらEnterでクラスを閉じてください。
それからprint a.Hを実行してください。
オブジェクト
オブジェクトとは?
オブジェクトとはクラスで考えた場合、「クラスという設計図を基に作られる部品」といえます。
先ほど設計図と設計図を組み合わせて新しい設計図ができると説明しました。
つまりクラスも部品になるためオブジェクトになることができます。
この事からクラスではすべてをオブジェクトとして使う事が可能です。

オブジェクトは設計図の話だけではなく
クラス作成後に a = Atomic()と書いたら a もオブジェクトとなります。
クラスとオブジェクトに関する問題
すべて正解できたら次のメソッドの章へ進みましょう。
問題1 次の中で設計図(クラス名)にあたるものはどれでしょう?
class  | Atomic: |
... |      H = "水素" |
問題2 次のクラスが動くように空欄に適切な答えをいれてください。
  | Atomic: |
... |      H = "水素" |
問題3 次の中でオブジェクトはどれでしょう?選択性の中から選びなさい。
class  | Atomic: |
... |      H = "水素" |
a = Atomic(): |