MachiKaniaで始めるオブジェクト指向プログラミング(その2)
2019年5月5日
前回の記事では、クラスを作製して呼び出した際の、プログラムの実行の流れについて見ました。今回は、オブジェクト指向プログラミングの基本中の基本、オブジェクトについて述べます。
オブジェクトとは何か
オブジェクトとは、クラスにより定義されるプログラミング上の概念です。通常、一つのクラスから複数のオブジェクトを作製する事が出来ます(例外的に、オブジェクトは一つだけと規定されるクラスや、オブジェクトを全く作製せずに使用するクラスもあります)。クラスはプログラムコードとして表現する事が出来ますが、オブジェクトは形の伴わない概念として捉えて下さい(実際には、コンピューターのメモリー上にデーターとして登録されますが)。ここでは、複数のオブジェクトを作製して、それぞれ別の事をさせる例について、考えてみましょう。
以下のような簡単な構造のクラスを考えます。まず、以下の内容でファイルを作製し、「HUMAN.BAS」の名で保存して下さい。
以下のような簡単な構造のクラスを考えます。まず、以下の内容でファイルを作製し、「HUMAN.BAS」の名で保存して下さい。

このクラスでは「HANASU」という名のメソッドが定義されていますが、それ以外にもう一つ性質があって、二行目の「FIELD KOTOBA$」です。ここで、「KOTOBA$」という名の文字列のフィールドを定義しています。フィールドは、クラスごとではなくオブジェクトごとに値を設定して使います。
メインプロラムで、HUMANクラスの使用を宣言してNEW関数を使用すると、HUMANクラスオブジェクトが作製されます。オブジェクトは概念として、ここでは人の形を模して描いています。この状態では、このオブジェクトのフィールド値「KOTOBA$」は空のままです。

オブジェクト「O」の「KOTOBA$」フィールドへは、「O.KOTOBA$」という表記でアクセスする事が出来ます。これにより、フィールド値を設定する事が可能で、「O」の「KOTOBA$」フィールド値の内容が"KON-NICHI WA"になりました。

この状態で、オブジェクトのメソッド「HANASU」を呼び出してみましょう。「O.HANASU()」と記述します。クラスの定義では、HANASUメソッドは、KOTOBA$を表示する事になっていますから、このオブジェクトのHANASUメソッドを呼び出すと、"KON-NICHI WA"と表示されます。

ここまでの例では、オブジェクトを一つだけ作製しましたが、複数作成する事も可能です。3つのオブジェクトを作製すれば、それぞれのオブジェクトごとに異なるフィールド値を持たせる事が可能です。

E,、C、J、3つのオブジェクトのそれぞれのHANASUメソッドを呼び出せば、それぞれのKOTOBA$フィールドの値が表示されます。

ここまで、次の事を見てきました。
1)USECLASSステートメントでの宣言により、クラスが使えるようになる
2)NEW関数により、クラスオブジェクトが作製出来る
3)オブジェクトのフィールド値を変更する事により、オブジェクトの特性を設定出来る
4)オブジェクトのメソッドを呼ぶ事により、オブジェクトごとに異なる結果を得るような形で、クラス中のコードを実行出来る
これが、クラスとオブジェクトを扱う、基本操作です。次回では、フィールドやメソッドの定義の仕方により、他のファイルからのアクセスを許可したりしなかったり出来ますので、その辺りについて述べたいと思います。
オブジェクトとは何か
オブジェクトとは、クラスにより定義されるプログラミング上の概念です。通常、一つのクラスから複数のオブジェクトを作製する事が出来ます(例外的に、オブジェクトは一つだけと規定されるクラスや、オブジェクトを全く作製せずに使用するクラスもあります)。クラスはプログラムコードとして表現する事が出来ますが、オブジェクトは形の伴わない概念として捉えて下さい(実際には、コンピューターのメモリー上にデーターとして登録されますが)。ここでは、複数のオブジェクトを作製して、それぞれ別の事をさせる例について、考えてみましょう。
以下のような簡単な構造のクラスを考えます。まず、以下の内容でファイルを作製し、「HUMAN.BAS」の名で保存して下さい。
以下のような簡単な構造のクラスを考えます。まず、以下の内容でファイルを作製し、「HUMAN.BAS」の名で保存して下さい。

このクラスでは「HANASU」という名のメソッドが定義されていますが、それ以外にもう一つ性質があって、二行目の「FIELD KOTOBA$」です。ここで、「KOTOBA$」という名の文字列のフィールドを定義しています。フィールドは、クラスごとではなくオブジェクトごとに値を設定して使います。
メインプロラムで、HUMANクラスの使用を宣言してNEW関数を使用すると、HUMANクラスオブジェクトが作製されます。オブジェクトは概念として、ここでは人の形を模して描いています。この状態では、このオブジェクトのフィールド値「KOTOBA$」は空のままです。

オブジェクト「O」の「KOTOBA$」フィールドへは、「O.KOTOBA$」という表記でアクセスする事が出来ます。これにより、フィールド値を設定する事が可能で、「O」の「KOTOBA$」フィールド値の内容が"KON-NICHI WA"になりました。

この状態で、オブジェクトのメソッド「HANASU」を呼び出してみましょう。「O.HANASU()」と記述します。クラスの定義では、HANASUメソッドは、KOTOBA$を表示する事になっていますから、このオブジェクトのHANASUメソッドを呼び出すと、"KON-NICHI WA"と表示されます。

ここまでの例では、オブジェクトを一つだけ作製しましたが、複数作成する事も可能です。3つのオブジェクトを作製すれば、それぞれのオブジェクトごとに異なるフィールド値を持たせる事が可能です。

E,、C、J、3つのオブジェクトのそれぞれのHANASUメソッドを呼び出せば、それぞれのKOTOBA$フィールドの値が表示されます。

ここまで、次の事を見てきました。
1)USECLASSステートメントでの宣言により、クラスが使えるようになる
2)NEW関数により、クラスオブジェクトが作製出来る
3)オブジェクトのフィールド値を変更する事により、オブジェクトの特性を設定出来る
4)オブジェクトのメソッドを呼ぶ事により、オブジェクトごとに異なる結果を得るような形で、クラス中のコードを実行出来る
これが、クラスとオブジェクトを扱う、基本操作です。次回では、フィールドやメソッドの定義の仕方により、他のファイルからのアクセスを許可したりしなかったり出来ますので、その辺りについて述べたいと思います。