【はじめてのJava】メソッド【オブジェクトとクラス編】
はじめてのJava
このシリーズでは、初めてJavaやプログラミングを勉強する方向けに、Javaによるプログラミングの基礎を説明していきます。
目標レベルは、Javaの資格試験の一つである「Oracle Certified Java Programmer, Silver」(通称Java Silver)に合格できる程度の知識の習得です。
はじめてJavaやプログラムに触れる方にもできるだけわかりやすい解説を心がけていきます。
オブジェクトとクラス編
オブジェクトとクラス編では、Javaを扱う上で非常によく出てくる「オブジェクト」や「クラス」について扱っていきます。
前回は「static変数の注意点」について扱いました。
今回は「メソッド」について扱っていきます。
目次
メソッド
メソッド とは処理内容を記述したブロックです。メソッドを記述することを「 メソッドを定義する 」「 メソッドを実装する 」といい、メソッドを利用することを「 メソッドを呼び出す 」と言います。
インスタンスメソッドとstaticメソッド
変数同様に、メソッドも大きく分けるとインスタンスメソッドとstaticメソッドに分類できます。
以下で簡単に説明しますが、今はそれぞれの違いがよくわからなくても今はあまり気にしなくて問題ありません。
インスタンスメソッドとstaticメソッドの違いは、インスタンス変数とstatic変数の違いに似ています。
じゃんけんゲームを行うプログラムを例に説明します。
じゃんけんゲームには、playerの手を決める「selectHand」メソッドと勝敗判定を行う「judgement」メソッドの2種類のメソッドがあるとします。
selectHandメソッドは、プレイヤー(インスタンス)ごとに実行する必要があります。これはインスタンスメソッドとして作成します。
それに対して、judgementメソッドはプレイヤーには依存しません。全体で1つあればOKです。これはstaticメソッドとして作成します。
では、メソッドについて、詳しく見ていきましょう。
メソッドとは
メソッドとは、前述の通り、処理内容を定義したブロックです。と、これだけ書かれてもよく分かれないので、以前出てきたCarクラスで考えてみましょう。
このCarクラスは、車をJavaの世界で再現するために作成したクラスです。
車の要素には「速度」「色」「ナンバー」などの属性と、「アクセル」「ブレーキ」「クラクション」といった操作があります。
Javaでは「属性」は「変数」で表現しました。それに対して、「操作」を表現するのが「メソッド」です。
例えば、「アクセル」を使うとその車の速度が上がります。これをJavaのクラスで再現する場合、インスタンスメソッドとして定義します。
メソッドの利点
メソッドには以下のような利点があります。
ソースコードが見やすくなる
極端な話をすれば、メソッドを使わなくても、すべての処理をmainメソッドに記述することでソースコードを作成できます。しかし、メソッドを使った方が圧倒的にソースコードが見やすくなります。
例えば、以前作ったソースコードを読み返す場合を考えます。
もしmainメソッドだけでソースコードを作成していると、mainの中身全てを細かく読まないとどんな処理が行われているのか分かりません。これは「章立てされていない本を読む」のと同じような感覚です。途中で前の内容を見返したくても、どこに書いてあったのかパッと見直すことができません。
それに対してメソッドを利用して作成されている場合、メソッド単位で処理内容を確認しながら読むことができます。これは「章立てされた本を読む」のと同じで、途中で前の内容を見返しながら読むことができます。
メンテナンス性が上がる
メソッドを適切に使って記載されているソースコードはメンテナンス性が向上します。
例えばソースコードが何百行もの長さになったとします。
mainメソッドに何百行も書いていた場合は、「この処理を変更したい」と思っても、その中から該当箇所を探すところから始めないといけません。これでは非常に時間がかかりますし、とてもストレスを感じる作業です。
それに対してメソッドを利用してプログラムを作成していた場合、ソースコード全体を見る必要はありません。直したいと思った処理を行っているメソッドの中だけを探せばよくなります。時間の短縮にもなりますし、ストレスもかなり軽減されます。
同じ処理を何度も実行しやすくなる
一度作ったメソッドは何度でも利用することが可能です。何十行もかかる処理を実行する場合、その処理をあらかじめメソッドとして定義しておけば、それ以降はメソッドを呼び出すだけで処理を実行できます。処理を行うたびに何十行も処理を書き直す必要はありません。
1度しか使わない場合はメソッドにしなくても良いのでは、と思うかもしれません。しかし、「後から同じ処理を行いたくなった場合」や「ソースコードの読みやすさ」を考えると、例え1度しか使わなくても、処理の塊はメソッドとしてまとめておくと良いです。
このように、メソッドを扱うといくつものメリットがあります。
まとめ
Javaでは操作は「メソッド」として記述する。
メソッドには「インスタンスメソッド」と「staticメソッド」がある。
メソッドを使うと
・ソースコードが見やすくなる。
・メンテナンス性が上がる。
・同じ処理を何度も実行しやすくなる。
次回
次回はメソッドの作り方について詳しく触れていきます。
はじめてのJavaシリーズの目次はこちら
オブジェクトとクラス編はこちら