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

こんにちは!インストラクターの井上(@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 メソッドが何故クラス内にあると便利なのか、他にどんな種類があるのかなどについては、後日「設計」について学ぶときに説明していきます。

まとめ

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

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

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

どうぞ、お楽しみに!

関連記事

プログラミングの勉強を始める初心者が最初にやるべき7つのこと
更新日 : 2019年5月3日
非WEB系SEがWEBエンジニアに3ヶ月で転職出来た7つの理由
更新日 : 2019年4月2日
【全て無料】独学でもスキルが身につくプログラミング学習サイトTOP5
更新日 : 2019年5月29日

自分にプログラミングなんて・・・と思っていませんか?

今後10年間で今ある職業の『77%』はなくなると言われています。

人工知能や機械学習を筆頭にVR、AR、ドローンなどの最先端技術の発達はこれからのあなたの働き方に間違いなく影響を与えるでしょう。

将来を見据えてプログラミングができるようになってエンジニアになりたい、自分だけにしかできないクリエイティブな仕事がしたい、、、とお考えの方も少なくないでしょう。

と、同時に「難しそう、、自分にはできないだろう、、、」と諦めている方も多いのではないでしょうか。

弊社マンツーマンレッスンは、お一人お一人に専属のインストラクターがつくので、通常のスクールでは難しい、オリジナルアプリ開発や、フリーランスとしての仕事獲得まで支援しています。

まずは『無料体験レッスン』で弊社コンサルタントと一緒にあなた専用の学習カリキュラムを考えてみてはいかがでしょうか?

詳しくは下の画像をクリックしてください。

cta_mtm2

LINEで送る
Pocket

書いた人

井上 慎也

井上 慎也

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

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説