読者です 読者をやめる 読者になる 読者になる

ぱらすの備忘録

個人的な備忘録なので間違った解釈があれば教えて下さい

インスタンスメソッドとクラスメソッド

後からちゃんとまとめる予定なのでメモ程度に。

用語を覚えるのが苦手な私ですが、Javaに触る機会がかなり多いので

Javaであれって思った単語を調べてみました。

 

今回はインスタンスメソッドとクラスメソッドについて。

そもそもメソッドって何?っていうのは後日改めてこちら

 

 

前述しましたがとにかく言葉を覚えるのが苦手な私。

当然のごとく英単語の意味だってほぼノリです。

Java習い始めた頃はインスタンス?クラス?な状態で

正直今でもノリで使ってるところが多いです。

 

さて、ざっくり調べたところ以下の違いがあるようで。

 

インスタンスメソッド

newでオブジェクトの生成を行ったオブジェクトから呼び出しによって使えるメソッド

staticではないメソッドのこと。

 

・クラスメソッド

クラスから直接呼び出すことのできるメソッド

staticがついている。

 

こんな感じ。

staticってなに?インスタンスってなに?っていうのも後日。

Javaはクラスという設計図をnewで形として具現化(インスタンス化)するのが基本。

ただし、インスタンスである必要性がまったくないものに関しては

staticである方がいいらしい。(staticはクラスで1つしか持たないため?)

 

インスタンスである必要性とは

・具現化すると振る舞いが変わる可能性がある

と言うのが初心者に対してわかりやすい説明なのかな?

例を出せばもっといいのだろうけど今は省略。

 

振る舞いが変わらないものに対してはstaticでも一応大丈夫

ただハッキリ絶対自信を持って大丈夫って言えないなら

使わない方がいいという人が多数いらっしゃるようです。

それほどstaticは奥深いというか危ないものなのだろう…。

簡単なサンプルで簡単に説明できるようなものではないのはたしかですかね。

 

(Mathクラスをみてたらなんとなくわかるようなわからないような…)

 

staticのつかないメソッドインスタンスメソッド

staticのついたメソッドがクラスメソッド

っていう違いが今のところまでのまとめ。

 

今回後回しにしたのはこちら

メソッドって何?

・staticって何?

インスタンスって何?

・そもそも今回の違いがまとまってねーよ