クラスについて
1.3 クラスについて
Pythonプログラムを作成するときに、必ずクラスを使用します。また、前節で学習したオブジェクトには必ず元となるクラスが必要です。この節ではクラスの概要について説明していきます。
1.3.1 クラスとは
これまでPythonを通じてint型やstr型、float型など、様々なデータ型のオブジェクトを扱ってきました。
Pythonでは、データ型を新しく作成することができ、作成されたものをクラスと呼び、このクラス(class)こそが、オブジェクトを生成する雛形になります。
パソコンを例にクラスを表現してみましょう。
クラスでは、変数(属性)やメソッド(操作)を定義することができます。下図で示すように、クラスに属性や操作を持たせることにより、オブジェクトを生成した時にそれらの属性や操作を持つことになり、そのオブジェクトにとってクラスこそがデータ型に該当します。
図 1.3.1: オブジェクトの雛形になるクラス
逆に言えば、オブジェクトに持たせたい属性や操作は、クラスというプログラムの形で記述すれば良いことになります。
ポイント
- オブジェクトの属性と操作をプログラムで表す場合、クラスに変数とメソッドを定義すること。
1.3.2 モデル化とは
前項でパソコンを例に挙げましたが、実際にそのクラスを作成する場合のことを考えて見ます。パソコンが持っている属性と操作の全てをプログラムにすることはできないので、必要な部分のみを抽出してクラスを記述します。
ここでいう「必要な部分」というのは、パソコンをどのように扱いたいか?によって大きく変わってきます。例えばパソコンを販売する商品として扱いたい場合には、価格や色、対応のオプション部品などが必要になります。また、製品として見れば、各種機能や性能などが必要になります。
このように、必要な部分を抽出する作業のことをモデル化と呼びます。
この項では、パソコンは以下の属性と操作を持つとしてモデル化し説明を行っていきます。
表 1.3.1 パソコンオブジェクトのモデル化例
これらの属性と操作をクラスに設定します。属性は変数、操作はメソッド(関数)で記述しますので、上記の表のような属性と操作を持つようなクラスを作成するには「OS」、「CPU」、「メモリ」を何らかのデータ型の変数として記述し、「起動」、「終了」、「音を鳴らす」という操作をメソッドとして記述する形になります。
上記の表の属性と操作を持たせたクラスを図で示すと以下のようなイメージになります。
図 1.3.2: コンピュータクラスのモデルイメージ
このような形で、対象となるものをモデル化し、属性や操作を抽出したものがクラスになります。