この章ではクラスについて説明します。
今までのプログラムでは変数と関数を扱ってきましたが、クラスという機能を使うことで多くの変数と関数を1つの機能体として働かせてデータを処理することができます。
クラスとは物を作る設計図に例えられます。
設計図は車や家や鉛筆をつくる場合に必要ですが、この設計図に当たるものがクラスです。
ではクラスについて詳細に説明します。
車や家や鉛筆の中には色々な部品が含まれていますが、それらの部品には「状態」や「ふるまい」があります。
例えば、鉛筆であれば「状態」は鉛筆の形、芯、線の濃さなどで、「ふるまい」は線を引く、削るなどの動作です。
その「状態」や「ふるまい」をクラスという設計図に書いていきます。
「状態」を変数で書き、「ふるまい」をメソッドで書くことになります。
その「状態」や「ふるまい」に指示を出すのはオブジェクトです。
例えば鉛筆の「線を消す」など具体的な指示をオブジェクトという司令塔から出します。
オブジェクトの詳細はこの後に説明します。
ではクラスの基本形から説明します。
〇クラスの中に変数やメソッドを書いていきます。
メソッドは関数の別名だと思ってください。
〇引数は必要な場合には記述しますが、省略もできます。
ではクラスの例を見てみましょう。
そして、このBankクラスを使うためにはオブジェクトを作成しなくてはいけません。
クラスはただの設計図なので、これを動かすのがオブジェクトです。
それが
オブジェクトを作った後は、そのオブジェクト変数を使って、クラスの中の変数やメソッドにアクセスすることができるようになります。
このinitメソッドの中で設定した変数にオブジェクトで設定したデータを入れます。
selfはオブジェクト自身を意味します。
〇注意点はinitの前後の下線は2つ連続で繋がっています。
この例では下線が1本に見えますがテキストエディタの表記のせいです。
〇 initメソッドはPythonで機能が与えられているメソッドですが、nyuukinメソッドやshukkinメソッドは自分で作成したメソッドです。
ではプログラムの説明をします。
banks=Bank(1200000)のようにオブジェクトを作成すると同時に引数である1200000がinitメソッドの引数であるaにセットされ、self.zandakaに代入されます。
initメソッドやnyuukinメソッドなどのメソッドの中の第一引数には必ずselfを設定します。
また、メソッドの中にクラス内で設定した変数がある場合はその変数にも
この例では
次はメソッドにデータを入れる方法について説明します。
次に以下の説明をします。
結果は以下の通りです。
例えば「ginkou」という変数を付け加えようとする場合には
例えば以下のように書きます。
次の例に進みます。
インスタンス変数は前の例の
クラスの中で変数を設定する時には変数の前にオブジェクトを付ける必要はありません。
クラスの中の変数の値を取得するには
以下の例では複数のオブジェクトごとにzandaka変数に値を入れていますが、これらのオブジェクト間で値の共有はありません。
つまり、新しくオブジェクトを作ったら、前のオブジェクトで使われていた変数の値は使われることはありません。