CodeZine(コードジン)

特集ページ一覧

「オブジェクト」
~マンガでプログラミング用語解説

マンガで分かるプログラミング用語辞典(40)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2013/11/05 14:00

解説

 今回は、オブジェクトの触り部分を紹介します。

 オブジェクトは、オブジェクト指向プログラミングで出てくる、プログラムの部品です。オブジェクト指向では、データと内部処理を、オブジェクトという入れ物の中に隠蔽して1つの単位として扱います。この、中身を隠してひとまとめにすることをカプセル化と言います。

┏オブジェクト━┓
┃ 隠 蔽   ┃
┃┏━━━┓  ┃
┃┃データ┃  ┃
┃┗━━━┛  ┃
┃  ↑    ┃
┃  |利用  ┃
┃  |    ┃
┃┏━━━┓  ┃ ┏━━━━━━━━━━┓
┃┃処 理┠──╂─┨外部から利用する命令┃
┃┗━━━┛  ┃ ┗━━━━━━━━━━┛
┗━━━━━━━┛

 オブジェクト指向の実現の仕方は、プログラミング言語によって違います。多く見られるオブジェクト指向では、データをオブジェクト内の変数で、処理をオブジェクト内の関数で表現しています。

┏オブジェクト━┓
┃  隠 蔽  ┃  公 開
┃┏━━━━┓ ┃
┃┃ 変 数 ┃ ┃
┃┗━━━━┛ ┃
┃   ↑    ┃
┃   | 利用 ┃ ┏━━━┓
┃   |    ┃┏┫引 数┣┓
┃┏━━━━┓ ┃┃┗━━━┛┃
┃┃    ┗━━┛     ┃
┃┃内部処理         ┃
┃┃    ┏━━┓     ┃
┃┗━━━━┛ ┃┃┏━━━┓┃
┃ 関数    ┃┗┫戻り値┣┛
┗━━━━━━━┛ ┗━━━┛

 このように、隠蔽部分と公開部分に分かれているのは、オブジェクト指向の特徴の1つです。外部に公開した部分の仕様を変更しない限り、内部のデータや処理を書き換えても、外部からは同じようにそのオブジェクトを利用することができます。

 そうすることで、オブジェクト内部の開発と、オブジェクトを利用する側の開発を別々に行い、それぞれ別途に改良していくことが可能になります。こういった仕組みは、大規模のプログラムを開発する際に非常に有用です。

 こういった仕組みは、電化製品の電源ソケットが規格化されているのに似ています。家の電気工事を行っても、電化製品は買い替える必要はありません。同じように、電化製品を買い替えても、家の電気配線を更新する必要がありません。

 オブジェクト指向プログラミングでは、こういった電化製品の仕組みと同じように、外部との接触部分を規格化することで、別途の更新が可能になっています。

 また、上記の例では、関数だけを外部に公開していました。外部に公開可能なのは、関数だけでなく変数も公開可能です。

┏オブジェクト━┓
┃  隠 蔽  ┃  公 開
┃┏━━━━┓ ┃
┃┃ 変 数 ┃ ┃
┃┗━━━━┛ ┃
┃┏━━━━━━━━━━━━━┓
┃┃ 変 数          ┃
┃┗━━━━━━━━━━━━━┛
┃   ↑    ┃
┃   | 利用 ┃ ┏━━━┓
┃   |    ┃┏┫引 数┣┓
┃┏━━━━┓ ┃┃┗━━━┛┃
┃┃    ┗━━┛     ┃
┃┃内部処理         ┃
┃┃    ┏━━┓     ┃
┃┗━━━━┛ ┃┃┏━━━┓┃
┃ 関数    ┃┗┫戻り値┣┛
┗━━━━━━━┛ ┗━━━┛

 オブジェクトの実際の利用の仕方は、次回以降で紹介していきます。

サンプル

 オブジェクトの典型的な形が分かるコードを、代表的なオブジェクト指向のプログラミング言語であるJavaで簡単に書いてみます。

 クラスやインスタンスについては、次回以降話をするので、ここではオブジェクトの基本構造のみを示します。

com/crocro/MyObject.java
package com.crocro;

public class MyObject {
    // データ部分
    int no = 0;

    // 処理部分
    public int add(int addNo) {
        no += addNo;
        return no;
    }
}
フィードバックお待ちしております!

 ご感想、解説して欲しい用語、解説内容のアドバイスなどございましたら、FacebookTwitterなどでお気軽に編集部までお寄せください。よろしくお願いいたします。



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:マンガで分かるプログラミング用語辞典

もっと読む

著者プロフィール

  • 柳井 政和(ヤナイ マサカズ)

    クロノス・クラウン合同会社 代表社員 http://crocro.com/ オンラインソフトを多数公開。 プログラムを書いたり、ゲームを作ったり、記事を執筆したり、マンガを描いたり、小説を書いたりしています。 「めもりーくりーなー」でオンラインソフト大賞に入賞。最近は、小説家デビューして小説...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5