1998.10
テレビの内部は複雑ですが、そのインターフェースは単純です。 スイッチの On/Off とチャンネルを切替える方法さえ分かっていれば 誰でも使えます。このように、内部は複雑でもインターフェースを シンプルにして扱いやすくすることが、オブジェクト指向プログ ラミングの目的の一つです。
オブジェクト指向プログラミング用のプログラミング言語としては、 C++ 、Java、Delphi ( object pascal ) などがありまして、 Fortran はオブジェクト指向用のプログラミング言語ではありません。
しかし、オブジェクト指向の考え方を取り入れてプログラムを 組むことは出来ます。オブジェクト指向ではクラスを定義し、 そのインスタンスを生成します。オブジェクト指向の良いところは、 1 つのクラスのインスタンスを複数作成できることで、 これは C や Fortran では出来ません。 しかし、1 つのクラスのインスタンスを 1 つだけしか作成しない場合は Fortran でもオブジェクト指向のプログラムを作ることが出来ます。
ここでは、その例として Fortran で作ったスタックのプログラムを 掲げます。
ここで考えるスタックは次の機能を持っています。
これを Fortran でオブジェクト指向の考え方で組むと以下のよ うになります。
上の例ではスタックのオーバーフローやアンダーフローを考慮して いないので、完全なプログラムではありませんが、オブジェクト指向の 考え方を簡潔に表しています。利用者はスタックの中身は知らなくても
というだけを知っていればよろしい。
なお、上の例ではメソッドへの引数は変数名の右側にアンダー バーをつけています。
以上のような考え方を使えば、common 変数を使わないで済みます。 common 変数を保持するモジュールを作り、変数を設定するメソッド、 変数の内容を取り出すメソッドを用意します。
こうすると、メソッドを通してしか変数にアクセス出来ません。 ゆえに、プログラムの安全性が高まり、組みやすくなります。
余談ですが、スタックを 2 つ使いたいときはどうすれば 良いのでしょうか? 残念ながら、Fortran ではこれが 出来ません。C++ などのオブジェクト指向言語が必要です。 C++ なら