min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

独習Java第4版 インスタンスメソッドとインスタンス変数

f:id:min117:20200119141449p:plain

要は雛形であるクラスから実体化されて客観的に(objective)に物質として触れることができるのがオブジェクトであり、それをインスタンス(実体)と呼ぶことにしたのであろうと。

 

こんなイメージ

f:id:min117:20200119132110p:plain

高次元の霊的存在である天使どもが、我々の住む主物質界に安定して実体化した姿が主天使第4位の天使ドミニオンだとすると

 

高次元の霊的存在であるクラスどもが、我々の触る主物質界つまりメモリ上に安定して実体化した姿がインスタンスであろうと。

 

読んでて理解した。良い作品は全てに通ず

 

インスタンスメソッド主天使ドミニオン使うビームや武器)を呼び出すためには、クラスのインスタンスを生成する(天使を主物質界に実体化する)必要がある。

f:id:min117:20200119134015j:plain

実体化してメソッド(武器やビーム)を使いこなせれば強力だ。

f:id:min117:20200119140140p:plain

 

 

Stringクラスで試してみる。

Stringというクラス(天使)が実体化してインスタンスになった(主天使に実体化した)ときに使えるメソッド(武器)にはこんなのがあるらしい。

f:id:min117:20200119134933j:plain

substringというメソッドを使えば、startからendまでの文字列を切り出すことができる

 

やってみる。

$ vim p56_First10Chars.java

f:id:min117:20200119135307p:plain

f:id:min117:20200119135739p:plain

4行目 変数sに文字列を入れた=オブジェクトsとして実体化した

5行目 オブジェクトsメソッドsubstringを利用して0から10文字目までを切り出す

 

12行目

やってることは4行目+5行目と同じなんだけど、ダブルクオートで囲んだ時点でオブジェクトが作成されている(実体化している)から

 "文字列".substring(1,10);

のような書き方ができる。

コンパイル

f:id:min117:20200119135516p:plain

 

実行

f:id:min117:20200119135859p:plain

f:id:min117:20200119140714j:plain

 

こうして見ると、クラス(天使)実体化(主天使ドミニオンになる)してはじめてメソッド(武器)が使えるはずなんだけど、

 

例外的に、クラス(天使)実体化しなくても使えるメソッド(武器)があって、それが静的メソッドだということだろうと理解した。

min117.hatenablog.com

 

Java楽しすぎる。