クラスやオブジェクトってなに?組み立て家具をイメージしてプログラムをなんとなく理解する

このまえDIYのワークショップに行ってきたのですが、「電動のドライバーがあると、一から作る時じゃなくても組み立て家具などの組み立てにも役立つんですよ」と教えてもらいました。

そういえば、手頃な価格の家具は自動車で持ち帰ったり、ネットで買って送ってもらったりしますから自分で組み立てる「組み立て家具」が多くなってますよね。

今回はそんな組み立て家具を比喩に使い、プログラムの理解に必要な変数クラスなどの雰囲気を掴んでいただこうと思います。

変数という入れ物

以前の記事でプログラムは値の読み書きが出来て、判断と繰り返し、関数の呼び出しができれば基本的にはOKという事を書きましたが、値の読み書きに使用する変数について少し詳しく書いてみます。

人間がノートに大切な事を書いたり、それを読んだりするように、プログラムでも値を読み書きするためには値を記録するための場所が必要になります。コンピュータにはメモリーといういろいろな物を記録するための領域がありますので、このメモリーの一部を使わせてもらう事になります。

VB.netでは
Dim A As B
記述するとBタイプの領域をメモリー内に確保してその部分にAという名前を付けることができます。言い換えるとAという名前がついた変数を準備することができるという事になります。

例えば
Dim A As String
と書けばAという変数に文字列タイプ(String)の値を書き込んだり、参照したりすることができる変数(メモリー)が確保されます。

クラスは組み立て家具だと思って

先ほど文字列タイプの変数を確保しましたが、同様に値をコレクションしたいときに使うアレーリストタイプの変数を記述してみましょう。

文字列タイプの変数などは値を1つしか記録できませんが、コレクション系のアレーリストなら、値を複数個持つことができるので便利です。

いくらでも積み重ねられるケースを想像してみてください。コレならコレクションが増えても収納場所を追加していけるので、ひとまとめに管理できるから便利ですよね。

でもDim A as Arraylist なんて記述だと不十分で、このままではAという名のアレーリストは使用できません。

こういった便利で複雑なタイプの物はクラスという組み立て説明書が準備されているだけで、そのままでは使えないようになっているのです。

最初から組み立てておいてくれればいいのにって思ってしまいますが、大きなものは持ち運びが大変ですし、場所も取りますから必要な時に組み立てて、いらなくなったら解体して場所を開けるようにしないと邪魔です。なので組み立ててから使う必要があるのです。

ではどうやったら組み立てられるのでしょうか?

Dim A as New Arraylist と記述するのです。ただNewという記述が増えただけです。これだけで組み立ててくれるのですから、組み立て家具を買ってくるより楽ちんです。

クラスはNewして使える物(オブジェクト)に変えてから使ってください。

まとめ

値を記録するためには扱いたい値のタイプに合わせた変数が必要になるという事、もう少し複雑で便利な物(オブジェクト)を使いたければ、クラスを使ってオブジェクトを組み立ててから使うという事がポイントです。

ついでにクラスとオブジェクトの違いも覚えておいていただけると、プログラムを勉強する際に役に立ちますから、クラスはオブジェクトにしてから使うものだという事も覚えておいてくださいね。

厳密には全然違う説明をしないといけないと思いますが、それだと眠たくなるので雰囲気だけ感じてもらえれば最初の一歩としては役に立つのではないかと思ってます。