1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

「数億規模スタートアップのCTO講師」と「エンジニアキャリア専門のポテパン」が贈る、実践型Rubyスクール。

脱初心者!オブジェクト指向の考え方を理解してプログラミングに活かそう

Pocket

はじめに

オブジェクト指向は難しいですか?なかなかオブジェクト指向が理解できないプログラミング初心者の方も少なくありません。おそらく内容が抽象的で、上手くイメージがわかないためでしょう。コードを思い浮かべてイメージを固めることが大切です。

この記事では、初心者の方のためにオブジェクト指向について説明していきます。ある程度理解できたら実践して、さらに理解を深めていきましょう。

そもそもオブジェクト指向ってなに?

オブジェクト指向とは、プログラミングの考え方のひとつで「オブジェクト」を中心としてプログラムを構成します。現代のプログラミング言語の中心的な考え方であり、オブジェクト指向の理解は必須といえるでしょう。オブジェクトは機能のまとまりであり、コンポーネントのようなものです。現実の物体に例えるなら「車」がオブジェクトと考えるといいでしょう。

次項で車を例にオブジェクト指向の要素を説明していきます。

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

カプセル化

カプセル化とは、内部の処理やデータを隠蔽することです。オブジェクト内部に実装の詳細を隠すことで、外部からは内部を意識することなく利用することができます。また、外部からの操作により不正な状態になってしまうことを避ける目的もあります。

先ほどの車の例でいうと、エンジンの仕組みや動作原理を知らなくても車が運転できるのはカプセル化のおかげですね。利用者はハンドルやアクセル、ブレーキなど公開されているインターフェイスを利用するだけで内部を意識する必要はありません。変にエンジンをいじって壊してしまう心配もありません。

継承(インヘリタンス)

継承とは、あるオブジェクトをそのまま引き継いで別のオブジェクトを作ることを指します。クローンのようなものと考えるといいでしょう。クローンといっても継承したオブジェクトはさらにカスタマイズすることができ、元のオブジェクトの機能や振る舞いを追加したり変更したりできます。

継承の一般的な利用場面は、親子関係がある場合です。たとえば、「車」というベースオブジェクトを作っておき、それを継承して「乗用車」や「トラック」、「バス」などのオブジェクトを作るといった具合です。こうすることでコードの共通化を図ることができ、保守性が向上します。また、新しいオブジェクトが必要になった場合でも継承するだけで済みます。

ポリモーフィズム(多相性)

オブジェクトはひとつの「型」となりますが、継承を用いた場合、継承したオブジェクトは継承元のオブジェクトとしても扱うことができます。これをポリモーフィズムといいます。オブジェクト指向の中でも理解が難しい部分なので、実際にコードを書いて試してみましょう。

つまるところ、実際に実行される処理は型によって決まるのではなく、オブジェクトによって決定されるということです。これによりオブジェクトごとに別々の処理を実行することができ、柔軟なプログラミングを実現できます。

主なオブジェクト指向言語

Java

最も人気のある言語で、オブジェクト指向を主体としています。値型など一部オブジェクトではない要素もあり、オブジェクトとの動作の違いに注意する必要があります。

最近では言語のバージョンアップにより、関数型言語の要素も取り入れられています。

Ruby

日本人のまつもとゆきひろ氏が開発した国産の言語です。すべてがオブジェクトとして構成されており、真のオブジェクト指向言語ともいえます。

構文がシンプルで学習しやすく、初心者にオススメする言語のひとつです。

PHP

ウェブ開発で最も使用されている言語でしょう。ウェブサイトの25%以上を占めると言われる有名CMSのWordPressに採用されており、インターネット上に広く普及していることがうかがえます。オブジェクト指向が後から追加されたためか、C言語のような手続き型のコードを書くことも少なくありません。

まとめ

今はオブジェクト指向が主流ですが、言語のパラダイム(考え方)はひとつではありません。最近の言語は複数のパラダイムを取り入れているので、オブジェクト指向が理解できたら他のパラダイムにも目を向けてみましょう。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る