こんにちは、コンスキです。
プログラミングを始めて、多くの人が理解に苦しむ事になる「クラス」。
そして、クラスとともに出てくる「インスタント」という言葉。
初めて聞いた時は、本当に何が何だかよくわからないですよね。
今回は、そんなインスタンスの概念をちょっとわかった気になれる方法をご紹介します。
僕もインスタンスを理解できているのかわかりません。しかし、わかった気になれてからはクラスをためらいなく使えるようになったことは確かです。
方法:JavaScriptを書く
僕がインスタンスの概念がわかった気になれたのは、JavaScriptを本格的に使ってプログラミングし始めた時です。
特にJavaScriptの「Vue.js」というフレームワークを勉強した時、「これだ!」という感覚を掴みました。
JavaScriptである理由
なぜJavaScriptかというと、JavaScriptはオブジェクトをよく使う言語であるためです。
インスタンスはClassをもとに作ったオブジェクトのことです。
オブジェクトの中にインスタンスが含まれます。
ということは、インスタンスを知る前に「オブジェクト」を知ってい方が良さそうですよね。
JavaScriptではオブジェクトを頻繁に使うため、しばらくJavaScriptを書いているとオブジェクトがどういうものなのかわかってきます。
インスタンスとオブジェクト
具体的にインスタンスとオブジェクトとの関係を見てみましょう。
Pythonでインスタンスを使う時、次のように書きます。
Class class1() {
def method1() {
print("method1が呼ばれました。")
}
}
instance1 = instance()
instance1.method1()
では次は、JavaScriptでオブジェクトを使います。
var object1 = {
method1: function() {
print("method1が呼ばれました。");
}
};
object1.method1();
どうでしょうか?
インスタンスとオブジェクトの使い方って、とても似ていませんか?
どちらもドット演算子「.」を使うんです。
インスタンスを理解することの必要性
インスタンスの理解が必要な理由は、モジュールを使えるようになるためかもしれません。
ここからは、インスタンスの理解の必要性に気がついたエピソードを少し書きます。
僕はインスタンスという概念にひたすら苦しめられました。
だから、半年くらいはインスタンスを勉強したものの、インスタンスが関係してくるクラスを僕はずっと使えませんでした。
というのもクラスは必要ないと思っていたためです。
別に使わなくても大丈夫なら、理解しなくてもいいと考えていました。
今考えると、確かに自分のコードだけでプログラミングする場合はそこまで必要ないかもしれません。
ちなみに、「自分のコードだけ」というのは、モジュール(追加の機能)を使わないという意味です。
クラスを使う必要もインスタンスを理解するも必要ないと思っていました。しかしです。
何か制作物を完成させようとすると、そのモジュールを使う必要が出てきました。
「Webカメラから動画を取り込む機能」や「Webサイトから情報を取ってくる機能」のような機能を使おうと思うと、自分で全てのコードを書くわけにはいきません。
そして、モジュールを使おうとしました。
するともモジュールを使う過程で、インスタンスを使うことを指す「new演算子」が登場しました。
モジュールのすごい機能を使いたいのに、インスタンスの意味がわからないから使えなかった経験です。
これが、インスタンスの理解が必要性に気がついたきっかけです。
さいごに
インスタンスって難しいですよね。
JavaScriptを使うことで、オブジェクトについて知ったことで、インスタンスを理解していることにはならないかもしれません。
しかし、インスタンスよりもちょっとわかりやすいオブジェクトをマスターすることで、インスタンスについて知った気になっていただけたら嬉しいです。
ちなみに、「Vue.js」というJavaScriptのフレームワークの勉強をしたことが、僕がインスタンスを理解した気になれた1番の理由ではないかと思います。
コメント