要は雛形であるクラスから実体化されて客観的に(objective)に物質として触れることができるのがオブジェクトであり、それをインスタンス(実体)と呼ぶことにしたのであろうと。
こんなイメージ
高次元の霊的存在である天使どもが、我々の住む主物質界に安定して実体化した姿が主天使(第4位の天使ドミニオン)だとすると
高次元の霊的存在であるクラスどもが、我々の触る主物質界つまりメモリ上に安定して実体化した姿がインスタンスであろうと。
読んでて理解した。良い作品は全てに通ず。
インスタンスメソッド(主天使ドミニオンが使うビームや武器)を呼び出すためには、クラスのインスタンスを生成する(天使を主物質界に実体化する)必要がある。
実体化してメソッド(武器やビーム)を使いこなせれば強力だ。
Stringクラスで試してみる。
Stringというクラス(天使)が実体化してインスタンスになった(主天使に実体化した)ときに使えるメソッド(武器)にはこんなのがあるらしい。
substringというメソッドを使えば、startからendまでの文字列を切り出すことができる。
やってみる。
4行目 変数sに文字列を入れた=オブジェクトsとして実体化した
5行目 オブジェクトsのメソッドsubstringを利用して0から10文字目までを切り出す
12行目
やってることは4行目+5行目と同じなんだけど、ダブルクオートで囲んだ時点でオブジェクトが作成されている(実体化している)から
"文字列".substring(1,10);
のような書き方ができる。
コンパイル
実行
こうして見ると、クラス(天使)は実体化(主天使ドミニオンになる)してはじめてメソッド(武器)が使えるはずなんだけど、
例外的に、クラス(天使)が実体化しなくても使えるメソッド(武器)があって、それが静的メソッドだということだろうと理解した。
Java楽しすぎる。