javaでメソッドを使用するには

はじめに
先ほどのペアプロ面談で、メソッドの定義の仕方を覚えていなかったことが判明した。
最近読んでいる本に書いてあったこと
世界一流エンジニアの思考法に書いてあったことだが、コードを書く際に以下の4つのレベルがある。
- 何も見ずに実装可能(レベル1)
- google検索で実装可能(レベル2)
- 人に聞くことで実装可能(レベル3)
- 自分では実装が困難(レベル4)
レベル1を増やしていくことが、コードを書くスピードを上げる。
私の場合、javaのメソッドはレベル2の段階だろう。
それを証明するためにこの記事を書いていきたい。
メソッドとは
メソッドを使えば同じ処理をひとまとめにすることで、何度も書く必要がなくなる。

メソッドには入力値を受け取る仮引数と、出力値である戻り値がある。
以下の図では、仮引数がユーザーの入力、戻り値が処理の結果である。

メソッドは2種類ある
- インスタンスメソッド
- スタティックメソッド
メソッドを定義する方法
アクセス修飾子 戻り値の型 メソッド名(仮引数の型 仮引数名) {
処理;
return 戻り値;
}
インスタンスメソッドとは
インスタンスから呼び出せるメソッドのこと。
インスタンスとは、クラスから生成できる実体のこと。
参考サイトの例を使用させていただくと、getModelというインスタンスメソッドは以下のように定義する。

getModelメソッドは、同じCarクラス内のshowメソッドで使用されている。

ここまではクラスの話。
クラスからインスタンスは以下のように生成する。

この例では、car1とcar2というインスタンスが生成されている。
car1に対してshowメソッドを使用したかったら、以下のように書く。

car2に対しても同じメソッドを使用できるので、処理の中身を書かなくても済む。

スタティックメソッドとは
インスタンスを呼び出さなくてもクラスから直接呼び出せるメソッドのことをスタティックメソッドと呼ぶ。
参考サイトの例を見ていこう。

maxというスタティックメソッドが定義されているのが見受けられる。
このメソッドは、同じMaxCalcクラス内で使用されている。
スタティックメソッドの場合は、アクセス修飾子と戻り値の型の間に「static」という文言が入る。
定義部分はこちら。

使用部分はこちら。

japaneseScoreという配列に、84、92、76を入れて、スタティックメソッドのmaxを使用している。
最大値を出して、maxJapaneseScoreに代入している。
そして、「国語の最大点数は、maxJapaneseScore 点です。」を出力している。
javaでメソッドを定義して使用する戦略
インスタンスメソッドかスタティックメソッドのどちらかを使えば良いだろう。
クラス内で済ませたかったらスタティックメソッドを使用する、
クラスを切り分けて作成して、インスタンスを生成しても構わないなら、インスタンスメソッドを使おう。
コメントを残す