Javaの勉強で「クラス」と「インスタンス」の違いに最初につまづくひとがいます。よくある説明として、『「クラス」というのは「変数(フィールド)」や「メソッド」をひとまとめにした、設計書のようなもので、「インスタンス」というのは、「クラス」に実際の値などを入れて、実体化したものである。』という事がいわれます。しかし、以上の説明だけだと少々想像しづらい部分もあるので、ここではクラスやインスタンスを擬人化して考えてみましょう。
クラス君は現場監督でその現場には一人しかいません。インスタンス君たちは新人で何も分かりません。ソースファイルにしたがって、現場監督のクラス君は、何も知らないインスタンス君の一人に名前をつけて「覚えて欲しいもの(フィールド)」と「こう言われたら、やって欲しい仕事(メソッド)」「仕事を始める前にまずやって欲しいこと(コンストラクタ:初期化メソッド)」のメモを渡します。これがいわゆるインスタンスの生成です。
インスタンス君たちはそのメモにしたがって、ソースファイル上でメソッドなどを指示されるたびに、それぞれ個別に仕事を行います。クラス君は、監督業務なので、「現場をまとめる為に覚えておくこと(static修飾子つきのフィールド:クラス変数)」や「インスタンス君たちにメモを渡してやらせるまでもない仕事(static修飾子つきのメソッド:クラス・メソッド)」を覚えており、それしか基本的にやりません。
Top > 「クラス」と「インスタンス」
java言語の基礎知識

ご訪問ありがとうございます。Java言語の基礎知識や学習方法、およびその周辺ソフト・周辺技術についての解説しています。ジャバ言語を完全マスターして徹底活用する際のご参考にして下さい。