はじめに

オブジェクト指向についてしっかり理解していますか?
現在のプログラミング言語はオブジェクト指向が主流になっており、プログラミングに必須の概念となっています。これからも当分この状況は変わらないでしょうから、ここでオブジェクト指向についてしっかり理解しておきましょう。
オブジェクト指向を理解するには「Ruby」が最適です。
この記事では、オブジェクト指向を理解したいプログラマーの方のために、Rubyを例に挙げてオブジェクト指向について解説していきます。
ぜひご一読して、必須の概念を身につけておきましょう。

なぜRubyなのか?

Rubyは人気のあるスクリプト言語であり、楽しくプログラミングすることを設計理念にしているため、プログラミング初心者の方にも馴染みやすい言語といえます。
また、Javaなどの他のオブジェクト指向言語とは違い、Rubyではすべてのものがオブジェクト(クラス)なので、オブジェクト指向を学ぶための言語として最適です。

オブジェクト指向の基礎知識

オブジェクト指向とは、プログラミングに対する考え方(パラダイム)のひとつです。
その言語の設計方法やプログラムの構造に大きく影響を与えます。
オブジェクト指向は、簡単にいえば現実世界のものをオブジェクトという単位でまとめて管理する考え方です。
いくつか重要な概念がありますので、次項で説明していきます。

オブジェクト指向で重要な概念

オブジェクト

オブジェクト指向でもっとも重要な概念は、いうまでもなく「オブジェクト」です。
オブジェクトとは、ある概念を表現したモデルといえます。たとえば、数値や日付、ファイルなどです。
オブジェクトは、対象の概念がもつデータや手続きを持っており、それらがひとまとまりになっていることで扱いやすくなっています。
たとえば、日付であればデータに日付を持ち、手続きとして日付の操作を持っているといった具合です。
オブジェクトが持つデータは、オブジェクトが持つ手続きからのみ変更可能なようにしておき、不用意なデータの変更を防ぎます。これを「カプセル化」といい、バグの防止に一役買っています。

クラス

Rubyなどのオブジェクト指向の言語では、オブジェクトを表すために「クラス」という概念を使っています。
クラスは、プログラム上でのオブジェクトの記述方法といえます。
変数(データ)やメソッド(手続き)を持たせることができ、さまざまな概念をプログラミングできます。しかし、クラスはそのままでは使えません。

インスタンス

クラスを使うためには、「インスタンス化」をしてクラスのインスタンスを作る必要があります。
インスタンスはオブジェクトの実体といえる存在で、クラスというオブジェクトの設計図から実体化されたものです。
なぜこのような方法になっているかというと、クラスからはインスタンスをいくつでも作れるからです。
もし、使う場所ごとにオブジェクトを記述しなければならなかったら非常にコードが長くなりますし、記述するのも大変です。

なぜオブジェクト指向でプログラミングするのか?

前述の通り、オブジェクトの内部にはデータをもたせることができ、オブジェクト自身以外に変更できないように守ることができます。
そのためデータの安全性が高まり、バグが発生しにくくなります。
また、オブジェクトは一つの概念がひとまとまりになっており、他のプログラムでも同様の概念が必要になったときに再利用しやすいといえます。
テストもオブジェクトごとに行うことができ、テスタビリティも高くなります。

まとめ

オブジェクト指向は、プログラミング初心者の方にはなかなか理解しにくい概念です。
概念自体はそれほど難しいものではありませんが、ある程度プログラミングの経験がないと“なぜオブジェクト指向でプログラミングするのか”ピンとこないでしょう。
そのため、概念が理解できたらプログラミングで実践してみましょう。
きっとオブジェクト指向の真髄が見えてくるはずです。