オブジェクト指向 (情報工学)

出典: へっぽこ実験ウィキ『八百科事典(アンサイクロペディア)』
移動先: 案内検索
Bouncypotato.gif
この記事「オブジェクト指向 (情報工学)」は何故か「オブジェクト指向」とネタや題材がダブっています。どちらが真実なのかは神のみぞ知ります。
Bouncypotato.gif
この記事「オブジェクト指向 (情報工学)」は何故か「Объект指向」とネタや題材がダブっています。どちらが真実なのかは神のみぞ知ります。

情報工学におけるオブジェクト指向とは、最近流行りのプログラミング手法のことである。

背景[編集]

従来からコンピュータでは、 0 と 1 という二つの状態の集合体を組み合わせることで、様々な機能を実現してきた。

この二つの状態とは、コンピュータ内部では電圧の大小によって表されるのであるが、 このような 0 と 1 の組み合わせによる表現は、 それを扱う人間の立場から見れば非直感的であるため、ソフトウェアの保守管理に多大なコストがかかることが問題であった。

そこで、 0 と 1 の代わりに処理手順を一纏めにして再利用可能にした関数という概念が生まれた。 コンピュータが原始的でプログラムのサイズが小さいうちは関数のみで事足りていたが、プログラムが巨大化してくると、再び関数の呼び出し関係が複雑化しプログラム全体の構造を把握しにくくなるという問題に悩まされるようになった。 そこで、具体的な機能を持つ物体を用いた、ビジュアル的に全体を把握しやすい情報処理の概念が考案された。 この情報処理の概念が「オブジェクト指向」である。

オブジェクト指向を導入することにより、巨大なソフトウェアの開発にかかる時間を大幅に削減することが可能となった。

クラス[編集]

オブジェクト指向プログラミングに必須なものとしてクラスがある。 すなわち、開発環境として学校が必要ということになる。 クラスが存在しさえすれば小・中・高校のどれを使っても構わないが、 クラスを数多く定義する場合は、より多くのメモリアドレスを持つ小学校がお勧めである。

学校の各教室のドアの上部には「1-1」とか「2-3」などの記号が見られるが、これらはオブジェクト指向ソフトウェアにおけるメモリのアドレスを表している。

Flower というクラスをアドレス 1-1 に定義する場合は、「1-1」と書かれた表札を「Flower」と書かれた表札に差し替えれば良い。これで Flower というクラスが宣言されたことになる。

インスタンスの生成[編集]

先ほどの例で作った Flower というクラスはいわばただの概念であり、プログラム中で実際に Flower クラスを使うには、それを基にして「インスタンス」と呼ばれる具体的な物体を生成しなければならない。

インスタンスの生成はいたって簡単である。Flower クラスの場合は、近所の花屋に行って適当な一輪の花と花瓶を買ってくれば良い。

生成されたインスタンスは、任意の変数に代入することが出来る。各クラスには平均して 40 程度の、インスタンスを格納するための変数領域がある。ただし、過疎化が進む地域の学校では、変数領域が 10 程度しか用意されていない場合もあるので注意が必要である。

Flower クラス内の任意の机の上に、生成された Flower インスタンスを置くことによって Flower のインスタンスが変数に代入されたことになる。

インスタンスの破棄[編集]

使用済みのインスタンスは、適切なタイミングで破棄すべきである。いつまでも破棄せずに放置しておいた場合、メモリリークと呼ばれる不具合を起こすことがある。

先ほどの Flower インスタンスの例を考える。もしも Flower インスタンスがそのまま残り続けた状態で朝を迎えたとしよう。元気に登校してきたとある生徒が、自分の机の上に置かれたブツを見てショックを受け、そのまま登校拒否になったり場合によっては自殺するかもしれないのだ。

このような深刻な問題を避けるため、オブジェクト指向プログラミングではインスタンスの管理を徹底することが肝要である。

関連項目[編集]