
インスタンスとは?簡単に具体例で理解しよう
こんにちはシオンです。
今回はインスタンスとは、インスタンス化とはなんなのか?についてまとめていきます。
結論から言うと、インスタンスとは
「型に中身を入れたもの」であり、インスタンス化とは「型に中身を入れること」です。
■インスタンスとは何者?
冒頭でも述べたとおりインスタンスとは
「型に中身を入れたもの」になります。
これはjavaでもpythonでもC#でもプログラミングならどれも同じです。
では、型とはなんなのか?中身とはなんなのか?
一つ一つ説明していきます。
■型って何?中身とは?
型とは俗に言うクラスのことです。
中身とは今自分が今作っている物(Appなど)のことです。
例を出して説明します。
想像して欲しいのですが、あなたは今オレンジジュースが飲みたいとします。そして今目の前に空のコップとオレンジジュースの入った紙パックが置いてあります。
あなたはオレンジジュースを飲もうと空のコップを口元に持ってきて傾けていきます。ですが、当然オレンジジュースが入っていないので飲めません。
この状態がインスタンスを取得せずにクラスを使おうとしている状態です。
当然ながらコップが空っぽだとオレンジジュースは飲めません。
オレンジジュースを飲むためにはコップにオレンジジュースを入れる必要があります。
この時のコップが型(クラス)で、オレンジジュースが中身になります。
コップ(クラス)だけがあってもオレンジジュース(中身)を入れないと飲むことはできないし、コップ(クラス)がないとオレンジジュースを飲むためにはコップ(クラス)作りから始めなければなりません。
この「コップにオレンジジュースを入れること」、
「型(クラス)に中身を入れること」これがインスタンス化です。
そして「オレンジジュースが入ったコップ(中身が入ったクラス)」
これがインスタンスになります。
インスタンスにして初めてオレンジジュースを飲むという目的を達成することができます。
■具体例で説明
ここまででは少しプログラミングと離れた例えだったので実際の具体例で説明します。
例えばアプリを作っているときに、スピーカーから音を出したいと思いました。そのためにまず、スピーカーなどアプリのオーディオを制御する関数を持つクラスAを見つけてきました。アプリのオーディオを制御してスピーカーから音を出すためにはアプリのオーディオ情報をクラスAに当てはめる必要があります。
だからクラスAにアプリの情報を当てはめてインスタンスを取得しました。
スピーカーから音を出したいので取得したインスタンスの音を出す部分をスピーカーに変更しました。これで目的が達成できました。
というような手順になります。
■まとめ
今回は簡単に身近な具体例で説明してみました!
なので細かい部分は違っているかもしれませんが(専門家の方見逃してください...)大体このようなイメージです。
わかりにくい、全然違うという場合はコメントで教えていただけると嬉しいです!