メソッドって本当に必要なの?
最近プログラミングの勉強を始めたけど、メソッドを使わなくてもプログラムは動くけど本当にメソッドって必要なの?
メソッドを使うことで、プログラムが見やすく、綺麗にかけるようになるから、今後複雑なプログラムに進むにつれて必要性が増してくるよ。
簡単なプログラムで練習しているうちから、メソッドへの抵抗をなくしておくことがとても重要になってくるよ。
メソッドは何のために使うのか?
プログラミングを勉強し始めた頃って、1画面で完結するプログラムであったり、ボタンの数も少ないもので練習していますよね。
そうすると、なかなかメソッドの重要性がわからないのですが、今後複雑なプログラムを書いていくにつれて確実に必要になってくる処理なので早めにマスターした方がいいのです。
メソッドを使うことでできること
一言で言うと、「処理をまとめることができる」です。
プログラムを書いていると同じような処理ってたくさん出てきませんか?
その処理をまとめて書いておいて、使いたいときはそのメソッドを呼び出す文を1文書くだけで、その処理を行ってくれるのです。
メソッドをイメージで説明すると…
パン作りを使って説明!
あなたはパン屋さん見習いです。
今日もクリームパン、カレーパン、アンパンを作ります。
パンの作り方を考えてみて!
まずクリームパンから考えると、小麦粉などの具材を量って、生地をこねて、中にクリームを入れて、オーブンで焼くよ。
カレーパンは、小麦粉などの具材を量って、生地をこねて、カレーを入れて、オーブンで焼く。
アンパンは、小麦粉…
ちょっと待って、今同じ作業が繰り返し出てきているの気が付いた?
これをまとめることができるのがメソッドなんだよ。
絵に書いてみると、3番目の中に入れる具材が違うだけと言うことがわかります。
メソッドでは、このように違う具材を指定することが出来、それを「引数」と言います。
また、出来上がるパンの種類も違いますね。この出来上がったカレーパンなどを「戻り値」と言います。
文字に起こしてみると
メインでは、具材を指示してメソッドを呼び出すだけ。
その他の作業はメソッドの中に書くことができるので、3回書かないといけないところを、1回にまとめられるのです。
実際にC#を使って書いてみましょう
「クリーム」、「カレー」、「アン」の文字列を引数で渡し、
「クリームパン」、「カレーパン」、「アンパン」を戻り値として返します。
まずはMainPageの中を見ていきましょう。
- MainPageに書いてある「makeBread();」の部分でメソッドを呼び出しています。
- 「makeBread();」の()の中の”クリーム”、”カレー”、”アン”がそれぞれ引数です。
- イコールで代入しているので、creampan、currypan、annpanには戻り値”クリームパン”、”カレーパン”、”アンパン”がそれぞれ代入されます。
次にmakeBreadメソッドを見てみましょう。
メソッドの書き方は、
アクセス修飾子 戻り値の型 メソッド名 ( 引数 )
{
この中にメソッドで行いたい処理を書く。
return 戻り値
}
今回は、
- アクセス修飾子=private
- 戻り値の型=string
- メソッド名=makeBread
- 引数=string型 filling なので、
private string makeBread ( filling ) { }
となっています。
そして、最後に忘れてはいけないものが戻り値です。
戻り値は、return 戻り値となるので、return bread; でbreadの中に入っている文字列が、それぞれ呼び出されたところに戻っていきます。
引数はなしにも、複数にもできる!
引数なし
メソッド処理を行う際に、特に渡す値がなくてもメソッドは利用できます。
その際は、カッコの中を空欄に、するだけでいいのです。
これで、panの中には、”パン”が入ります。
引数複数
そして、複数渡したい際は、カッコの中で引数を渡す際に、” , ” でつなぐだけ!
これで、triplepanにはクリームカレーアンパンという何とも美味しくなさそうなパンが入ります(笑)。
戻り値はなしにできる
戻り値はなしにするには、戻り値の型を書いていたところにvoidを書くだけです。
これで、MainPageに戻り値を返すことなく、メソッド内でメッセージボックスにクリームパンを表示します。
最後に
今回は、メソッドの基本の部分をまとめました。
すっきりと見やすいプログラムを作る上でメソッドはとても重要なポイントになってきます。
メソッドは、発展していくともっともっと便利になっていきます。まずは基本を理解して、その後さらに次のポイントへと進んでいきましょう。
コメント