メソッドを定義する
同じ 3 行を、3 か所に書いている
見出しの前に区切り線を出したい。System.out.println("----------"); を 1 行書きます。次の見出しの前にもう 1 行、その次にもう 1 行。ここまではコピペで済みます。
つらくなるのは、線を - から = に変えたくなったときです。3 か所を全部直すことになり、1 か所でも直し忘れれば表示が揃いません。同じ処理があちこちに散らばっているコードは、直すたびに壊れます。
処理に名前を付けて、名前で呼ぶ
処理のかたまりに名前を付けておく仕組みがメソッドです。
Java
public class Report {
public static void printLine() {
System.out.println("----------");
}
}これで、線を出したい場所には名前を書くだけで済みます。
Java
printLine();
System.out.println("売上レポート");
printLine();呼ばれた瞬間に中身が動き、終わったら呼んだ場所に戻ってきます。線の見た目を変えたくなったら、直すのは定義した 1 か所だけです。
定義の 1 行目を左から読むと、public はどこからでも呼べるという印、static はクラス名から直接呼べるという印、void は値を返さないという印、printLine が名前、() が外から受け取る値の置き場です。
static を忘れると、テストから呼べない
Java Playground の採点は、クラス名からメソッドを直接呼びます。static を書き忘れると、先にインスタンスを作らないと呼べないメソッドになり、採点側から届かずに落ちます。中身は正しいのに落ちるので、原因に気づきにくい失敗です。
もうひとつ、メソッド名の大文字小文字は区別されます。getGreeting と getgreeting は Java にとって別物です。課題で指定された名前と 1 文字も違わないように書いてください。
やってみよう
Solution クラスの中に、課題で指定された名前のメソッドを 1 つ定義しましょう。public static を付けて、本体で指定された文字列を return で呼び出し側に渡します。
System.out.println で画面に出すだけでは正解になりません。採点はメソッドが呼び出し側に渡した値だけを見ています。ここは次のレッスンからも効いてくる、Java Playground の基本ルールです。
書けたら、中の文字列を自分の好きな言葉に変えて実行してみてください。テストは落ちますが、名前を呼ぶだけで中身が動く、という往復の感覚がつかめます。
要件
- クラス名は
Solution、メソッド名はgetGreetingにすること - メソッドの戻り値の型は
Stringで、引数はなし、public staticを付けること - 文字列
"Hello from method!"をreturnで返すこと (大文字小文字、半角スペース、末尾の ! まで正確に)
入出力例
getGreeting() → "Hello from method!"