これまで過去数記事に渡って、クラスの構成要素について説明してきました。
今回は、最後の構成要素であるメソッドについて説明いたします。
インスタグラムの演習解答をすぐにご覧になりたい方は、こちらをクリック!
クラスの具体例
今回使用するクラスの具体例を以下に示します。
後述のリンクからお越しの方は、
ブラウザバックをすれば、読んでいたところまで戻ることができます。
メソッドとは
メソッドとはズバリ、「できること」「したいこと」
クラス具体例の、14〜16行目、21〜24行目、26〜30行目がTriangleクラスのメソッドです。
面積の算出や、ステータスの表示などのできることをメソッドといいます。
スマートフォンで言うと、「電話をかける」や「LINEをする」などがメソッドにあたります。
メソッドの定義方法
修飾子 戻り値 メソッド名(もらいたい情報) {
本体
}
修飾子は、クラス、コンストラクタと同様に「public」と定義しましょう!
戻り値とは、そのメソッドがどの型で値を返すかを指定します。
後々詳しく説明しますが、今回使用している「void」というキーワードは
戻り値を設定しないという意味を持っています。
また今回は、クラスの情報(フィールド)以外でもらいたい情報がないので、空欄としています。
メソッドの使用方法
モノの名前.メソッド名(与えたい情報);
モノの名前とは、newを代入した変数のことです。
27行目のtriangleがモノの名前となります。
先述の通り、与えたい情報はもう設計図に組み込まれているため、
加えて与えたい情報がないため、書いていません。
これを記述すると、メソッドの本体の処理が実行されます。
例えば、triangle.calcArea();とすると、
15行目の処理が行われ、フィールドareaに面積を計算した値が代入されます。
点数管理システム
前回までで、フィールドの宣言、コンストラクタの定義までを済ませました。
つまり、設計図をもとに点数管理システムが完成していると言うことです。
スマートフォンで言うと、電源が入っていないスマートフォンが完成しているイメージです。
今回は、さまざまなメソッドを追加して、このシステムに機能を持たせましょう!
合計点を求めるメソッド
メソッド名を「sumScore」として、合計点を求めるメソッドを定義しましょう。
フィールドに合計点を代入する用の「sum」があります。
また、各教科の点数はすでにフィールドに入っている(設計図に落とし込まれている)ので、もらいたい情報はありません。
メソッドは通常、コンストラクタの下に定義していきます。
修飾子、戻り値は具体例を参考に、合計点を求めるメソッドを作成してみましょう!
それでは解答です。
「sum」に各教科の点数を足して、合計点を代入するメソッドです。
メソッドの定義方法の理解を深めましょう!
平均点を求めるメソッド
メソッド名を「aveScore」として、平均点を求めるメソッドを定義しましょう。
平均点を代入する用の「ave」がフィールド定義されています。
「sumScore」と同様に、定義してみましょう!
それでは解答です。
別解として、以下のようなものが挙げられます。
実際にはこちらの方が正解です。
なぜなら、平均点だけを求めたい際は、「sumScore」が実行されず、「sum」には合計点が代入されていないからです。
設計図を組み立てた際(newを代入した際)に設計図に与えた情報は、各教科の点数だけなので、それを使うようにしましょう!
ですが、今回は「生徒名を指定して、合計点と平均点を表示する」練習用のシステムですので、「sum」は正しい値が入っているものとして問題ありません!
生徒名を指定して、スターテスを表示する
メソッド名は「studentState」として定義しましょう。
今回は、フィールドの他に「生徒名」という文字型の欲しい情報があります。
欲しい情報の変数名は、「studentName」としましょう。
メソッドの定義方法が少し変わってきますね。
表示内容は、「(生徒名)さんの合計点は:(合計点) 平均点は:(平均点)です」
また、先述の通り、「sum」と「ave」には正しい値が入っている前提で使用してもらって問題ありません。
それでは解答です。
今回は少し難しかったかもしれません。
欲しい情報は、「文字型のstudentName」ですので、「()」の中身が必要となります。
このように記述すると、「studentName」の中には、後々指定する生徒名が代入されています。
言い換えると表示内容は、
「(後々指定される生徒名)さんの合計点は、、、」となるわけです。
メソッドを使って点数管理システムを動かす
これまで定義したメソッドを実際に使用してみましょう。
使用する場所は、いつものおまじないの中です。
前回「new」を代入した下で使用します。
- 合計点を求めるメソッド
- 平均点を求めるメソッド
- 生徒名を指定してスターテスを表示するメソッド
この順番でメソッドを使用してみましょう!
3. で指定する生徒名は「安藤」としてください。
3つのメソッドを使用できたら、いつも通り、プログラムを実行してみましょう!
それでは解答です
メソッドの使用方法について理解を深めましょう。
与えたい情報(生徒名)は文字型なので「""」で囲う必要があります。
点数管理システムの実行結果は以下の通りです。
同じ実行結果になりましたか?
間違えた方は、この記事を一から読み直しです!!
今回作成した点数管理システムの全体プログラムを示しておきます。
復習などにお使いいただけたら幸いです。
まとめ
3回に渡って、クラスの構成要素について説明してきました。
定義方法や、使用方法、それぞれの考え方など様々なことを一気に説明したので、何度も読み返して、ひとつひとつ理解を深めてもらえれば幸いです。
また、今回作成したシステムはまだまだ改善の余地ありです。
次回以降に演習として改善していきましょう!
おつかれさまでした!