オブジェクト指向のクラスって?メソッドやインスタンスの関係を解説してみた

井上 慎也
書いた人 井上 慎也

こんにちは!インストラクターの井上(@InoIno_iesa)です。

オブジェクト指向プログラミングって、なかなかハッキリ分かるとは言いづらい考え方ですよね。

実際プログラミング初学者の方には、オブジェクト指向の概念で曖昧になりがちなポイントがいくつかあります。

そこでこのシリーズでは、「オブジェクト指向ってよく分からない!」という人に、ステップバイステップで誰にでも分かるように噛み砕いて解説しています。

前回の記事では「オブジェクト指向ってどういうものなの?」ということを学びました。

今回はもう少し具体的な内容と、よく使われる基本的な用語「クラス」「インスタンス」「メソッド」を理解して、本格的な活用方法の為に理解を深めていきましょう。

〜連載記事一覧!オブジェクト指向について〜
Vol.1  「オブジェクト指向とは何か?わかりやすい例で説明してみた。
Vol.2  「オブジェクト指向のクラスって?メソッドやインスタンスの関係を解説してみた

そもそもオブジェクト指向のクラスとは?

オブジェクト指向には「クラス」という考え方があります。

クラスとはこれから作る『モノの定義』です。

例えば「これから作る『モノ』は何を覚えておくことが出来るか?」「これから作る『モノ』はどんなことをすることが出来るのか?」といった内容を決めていきます。

オブジェクト指向では『ロボットを設置して仕事をさせるように』プログラミングを進めていきます。

ロボットは指示されたことしか出来ませんので、予め「キミにはこんな指示をするよ」「この指示を受けたらこういう仕事をしてね」ということを決めて利用します。

つまり、クラスとは「これから仕事をしてもらうロボットの設計図」と理解して頂ければ分かりやすいでしょう。

スクリーンショット 2016 06 12 15 05 12

インスタンスとは?

「インスタンス」とは、クラスから作られた実働する『モノ』のことです。

クラスはあくまで『設計図』でしかありませんので、クラスだけでは仕事をしてくれません。

実際に動作をさせるためにはそこから『実際に動くモノ』である「インスタンス」を作らなければなりません。

インスタンスは「クラスという設計図から生み出された実際に働くロボット」と理解して頂くと良いでしょう。

なお、クラスからインスタンスを作ることを「インスタンス化」といいます。

スクリーンショット 2016 06 12 17 49 46

メソッドとは?

「メソッド」とは、プログラムの一連の処理をまとめたパッケージのようなものです。

一連の処理に名前をつけて、後からその一連の処理を簡単に呼び出せるようにしておきます。

言語によっては「関数」と呼ばれることもあります。

メソッドは独立して道具のように使うこともありますが、クラスの中に持つことも可能です。(※1)

クラスの中にある通常のメソッドは、『そのクラスから生成されたインスタンスが出来ること』を表します。

はじめに作成した”おはなしロボットクラス”の”ねぎらい機能”がメソッドにあたります。

インスタンスに対して搭載されている機能の利用を指示することで、実際にその仕事をしてくれるようになります。

スクリーンショット 2016 06 12 19 38 51

※1 メソッドが何故クラス内にあると便利なのか、他にどんな種類があるのかなどについては、後日「設計」について学ぶときに説明していきます。

まとめ

今回は「クラス=設計図」「インスタンス=設計図から作った実働するモノ」「メソッド=処理がまとめられたもの」としてご説明してきました。

前回のオブジェクト指向の考え方を少し掘り下げて理解できたでしょうか。

ここまでで何となくオブジェクト指向の基本的な用語や概念が分かってきたかと思いますが、例え話ばかりでは逆に表面的なことしかわからないので、次回は少しプログラミングのコードも交えて説明していく予定です。

どうぞ、お楽しみに!

関連記事

最短でプログラミングを習得したい方へ

元々ITリテラシーのある方やプログラムの学び方がわかっている方は独学で習得することも可能でしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「もう挫折したくない」
「本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい。」
「自分だけのカリキュラムで効率的に勉強したい」

そんな方はお気軽に侍エンジニア塾までご相談ください。

弊社では、

  • プログラミング基礎学習
  • オリジナルアプリ開発
  • 仕事獲得

までをひと通り学習できます。

まずは無料体験レッスンで、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

挫折しない学び方や、通常1000時間以上かかる学習時間を1/3にする方法などより具体的なアドバイスもさせていただいています。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta1

非常識な結果を出す卒業生多数!

エンジニアキャリア戦略

人気記事セレクション

LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

井上 慎也

井上 慎也

侍エンジニア塾のインストラクター。フリーでWEB制作の受託や自身の事業の傍ら、侍ではWEBプログラミング方法の指導やプログラミング学習コミュニティの運用を行っている。
好きなショートカットキーは、command + w 。愛機はMac Book Pro。ブラウザのタブを大量に開きがち。