オブジェクト指向

【オブジェクト指向】クラスとは?インスタンスとは?【概念の解説】

どうも、つよぽんです!

今回は、「オブジェクト指向プログラミングで使うクラスインスタンスの概要」について解説していきます。

今回の記事は次のような方に向けて書きました。

想定読者
  • オブジェクト指向に出てくるクラスって何?
  • オブジェクト指向に出てくるインスタンスって何?

この記事を読み終えた後のあなたは次のことがわかるようになっています。

この記事を読み終えた後のあなた
  • オブジェクト指向で使う「クラス」と「インスタンス」の概念と関係性がざっくりとイメージがつくようになる

今回の記事の内容は以下の解説記事でも使っているスライドの内容をさらに詳しく解説したものとなります。

あわせて読みたい
【オブジェクト指向】クラスとインスタンスの概念・関係を理解するオブジェクト指向の基本知識となる「クラス」「インスタンス」の概念と2つの関係について学習していきます。クラスとインスタンスをそれぞれ一言でまとめると「クラス=ひな形」「インスタンス=ひな形から作られた実体」となります。今回のスライドでクラスとインスタンスのイメージをしっかりとつけていきましょう。...

それでは以下の内容で話を進めていきます。

今回の内容
  1. 【オブジェクト指向】クラスとは
  2. 【オブジェクト指向】インスタンスとは

【オブジェクト指向】クラスとは

オブジェクト指向の「クラス」とは「何かを作る際のひな形」というイメージを持っていいただくと良いです。

前回記事「【スライド解説付き】オブジェクト指向とは【概念を理解する】」でも説明した内容をおさらいします。

前回記事の「同じ種類のオブジェクトは似た状態・同じ機能を持つ」の章でクラスについて少し触れました。

そこでは、同じ種類のオブジェクトを大量生産をする際にひな形(=クラス)を用意すると便利だということをお話しました。

このひな形(=クラス)に対して、異なる情報をセットして実体を作ることで、異なる状態(色・形など)を持ちながら同じ機能を持つオブジェクトを簡単に作れるようになります。

具体例があった方がイメージが付きやすいので、前回記事と同じように「気球」を例に説明します。

例 : 気球作成マシンに材料(=情報)を渡す

ここでは気球工場があることをイメージしてください

この気球工場に気球を作成するのに必要な風船の素材・燃料タンク(=材料)を渡すと1時間で気球を完成させてくれます。

1時間という短時間で気球が出来上がるのは、この工場が気球を作成するための「気球作成マシン(=ひな形)」を持っているからです。

この「気球作成マシン」に材料を渡すと、あとは勝手に気球を作成してくれます。

なので、気球を100個作りたい場合は、気球を100個作成するのに必要な材料をこの「気球作成マシン」にわたすだけで一時間後には100個の気球が出来上がります。

このように、「同じ種類のオブジェクト(今回の例の場合は気球)」を大量に作成したいときは「ひな形(=クラス)」を用意すると便利だということがわかったかと思います。

【オブジェクト指向】インスタンスとは

オブジェクト指向の「インスタンス」とは「ひな形(=クラス)を使って作成した実体」というイメージを持っていいただくと良いです。

気球作成マシンから作成された気球(=実体)がインスタンス

先程の「気球工場」を思い出してみましょう。

この気球工場では、「気球作成マシン(=ひな形, クラス)」を持っており、この気球作成マシンに材料を渡すことで1時間後に気球を作成するというものでした。

この時、100個の気球を作ろうとしたときに、100個分の材料を渡すことになります。

そして、100個それぞれ異なる材料(風船の素材の種類や色など)を渡すと、100個それぞれ見た目の異なる気球ができます。

この時100個の気球1個1個は独立したオブジェクト(=実体)となります。

オブジェクト指向プログラミングの視点からいうと、この「クラス(=ひな形)」から作成された「実体(=オブジェクト)」をインスタンスと呼びます。

先程の「気球作成マシン」で作成された100個の気球は1個1個がインスタンスになるので、「100個の気球インスタンス」を作成したことになります。

まとめ

今回の話をまとめると次のとおりです。

今回のまとめ
  • クラスとは「同じ種類の実体を作成するためのひな形」のこと
  • インスタンスとは「クラス」から生成された実体のこと
  • 「クラス」を使って「インスタンス」を作成する
    • 例 : 気球作成マシン(=クラス)に気球1個分の材料を渡すと、1時間後に1個の気球(=インスタンス)を作成する

今回の内容は以下の記事内のスライドの補足資料として作成しました。スライドの全部を確認したい方は以下の記事も参照して頂けたらと思います。

あわせて読みたい
【オブジェクト指向】クラスとインスタンスの概念・関係を理解するオブジェクト指向の基本知識となる「クラス」「インスタンス」の概念と2つの関係について学習していきます。クラスとインスタンスをそれぞれ一言でまとめると「クラス=ひな形」「インスタンス=ひな形から作られた実体」となります。今回のスライドでクラスとインスタンスのイメージをしっかりとつけていきましょう。...
【やる気満々な方向け】学習サポートとオンライン講義やってます!

Webエンジニアになりたい人向けに、MENTAにて『【やる気満々な方向け】未経験からのWebエンジニア育成コース』というプランを用意しております。

このプランでは、「【学習コンテンツ】Web開発」と「【初心者向け】The Web Developer Bootcamp」で紹介している教材を使って学習を進めていただきます。

【学習コンテンツ】Web開発」に用意している学習コンテンツのスライドも「【初心者向け】The Web Developer Bootcamp」で紹介している教材をベースに作っています。

あわせて読みたい
【初心者向け】The Web Developer Bootcampはじめに 「The Web Developer Bootcamp」はWeb白熱教室の「学習コンテンツ」のベースとなっている教材です。 ...
あわせて読みたい
Web開発Webエンジニアになるために必要な知識・スキルを学習できるコンテンツを用意しました。未経験者でも、①開発環境の準備、②Webの基本的な仕組み、③HTML、④CSS、⑤JavaScriptと順を追って学習することでスキルが身につくことを目的に教材を作成しています。...

誰向けのプラン?

こちらのプランは次のような方に向けて作られています。

プラン対象者
  1. Progateやドットインストールで一通り学習したけど、次に何をすればよいかわからない
  2. Webエンジニアになるまでの学習プランがあると助かる
  3. 学習していてわからないところが出てきたときに質問したい
  4. コードレビューして欲しい
  5. オンライン講義に参加したい
  6. 学習した内容をアウトプットした際に、フィードバックがもらえたら嬉しい
  7. おすすめの学習教材を知りたい
  8. Webフロントエンド・バックエンドを学習したい
  9. フルスタックエンジニアになりたい
  10. 文系出身で今までプログラミングをしてこなかったけど、将来Webエンジニアになりたい
  11. 将来フリーランスになることを目指している

プラン内容は?

【やる気満々な方向け】未経験からのWebエンジニア育成コース』では次のことを行っております。

プラン内容
  1. Udemyの教材や、Web白熱教室の学習コンテンツを使った学習プランの提示 (学習プランに沿って学習を進めていただきます。)
  2. 教材・学習コンテンツの課題をこなしたあとは、僕にコードレビュー依頼を投げていただくことで、コードを添削する(課題クリア後は、引き続き学習プランの内容を続けていただきます。)
  3. プラン契約者が参加するSlackグループにて質問し放題
  4. Slack内にある「アウトプットの場」チャンネルにて、学習したことをアウトプットをしていただくことで、それに対しフィードバックをする (学習内容のアウトプットは復習にもなるため、アウトプットすることを強く推奨します。)
  5. 画面共有を使ったオンライン講義 (オンライン講義は録画して、いつでもふり返れるようにしています。(オンライン講義動画(ウェビナー動画)))
  6. 学習プラン以外の内容に対しての質疑応答 (内容によっては回答できないものもありますが、まずは気軽に質問していただけたらと思います。)

その他注意点

1人で対応していることもあるため、対応が難しくなった場合は急遽募集を終了する可能性もあることをご了承ください。

もしくは、僕以外にメンターを増やすことで募集を継続するということも考えているため、その場合は現在のプラン料金の値段を上げることなると思います。

仮にプラン料金を上げる場合は、『現在のプラン料金 × メンター人数』の料金になるかと思います。

現在の値段が5000円なので、1日1本ペットボトルジュースを買うのを我慢することで(約160円)、効率よく学習できるので費用対効果はかなり高いかなと自負しています。

また、今後メンターが増えて、プラン料金が10000円15000円と上がったとしても、月々の料金は申し込んだときの料金となるので、5000円のときに契約した場合はずっと5000円で受講することができます。

詳しく話を聞いてみたい方は

以下のいずれかでメッセージをいただけたらと思います^^

 

プラン内容については以下のリンク先からも確認することが出来ます^^

【やる気満々な方向け】未経験からのWebエンジニア育成コース

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です