【Java入門(1)メソッド編 #2】引数・戻り値バリエーション

 

みのる
こんにちは。笑顔で感謝!✨ みのるコーチです。
今回も、ご覧いただき、ありがとうございます。

今回は

Java入門1 メソッド編 #2
引数・戻り値バリエーション

というテーマでお送りします。

前回はメソッド概要をお話しして、プログラムを書いてみました。

今回は、引数と戻り値のバリエーションを見ていきましょう。

彩香
今回も、よろしくお願いします。
剛留
ガッツリ、やっていきます。
みのる
それでは 早速 いってみましょう。

【Youtube版】

Youtubeでもお伝えしていますので
是非チェックしてくださいね。

【1】String型

前回は、引数で int型 の値を渡して
戻り値で int型 の値を返すパターンを学びました。

この引数・戻り値には
全ての基本データ型を 使うことができますし…

参照型を使うことも できます。

ここでは、String型 の例を見ていきましょう。

// 呼び出し側
String name = “河合”;
String greeting = createGreeting(name);
  :

// メソッド側
static String createGreeting(String name) {
    String result = “こんにちは、” + name + ” さん。”;
    return result;
}

メソッド側を見ると、仮引数は string型 の name です。

この name という引数名で受け取った値を使って
内部で処理をしています。

前後に文字列を連結して
String型 変数の result に代入しています。

こんにちは、○○ さん。という挨拶文を作っていますね。

そして、return によって呼び出し側に実行位置を
戻しています。この時の戻り値は、result です。

呼び出し側を見ると…。

String型 の name を文字列 “河合” で初期化して
メソッド createGreeting を呼び出していますね。

この時の引数が name です。

そして、呼び出し側は、メソッド処理から
戻り値が渡されたら…

createGreeting(name) の部分を 戻り値に置き換えます。

この例では、”こんにちは、河合 さん。” となります。

そして、結果を String型変数 greeting に代入して
その後の処理で使用しています。

もう1つ、見ておきましょう。

今までの例では、return の右側に記述する 戻り値には
変数 を指定していましたが…

ここは 「式」を指定することもできます。

式を指定した場合には、その評価値(評価した結果)が
戻り値として、呼び出し側に渡されます。

ですので、

String result = “こんにちは、” + name + ” さん。”;
return result;

この部分は

return “こんにちは、” + name + ” さん。”;

と記述する事もできます。

彩香
String型を 引数にも 戻り値にも 使えることは朗報ですね。
便利に使えそうです。
剛留
前回の話で、戻り値に指定できるのが
「リテラル・変数・定数・式」と、ありましたね。

このように使えるんですね。

【2】引数の数・並び

①複数の引数

メソッドでは複数の引数を指定する事ができます。

メソッド側では、データ型 仮引数名 のセットを
「,」(カンマ)で区切って記述します。

呼び出し側では
実引数 を「,」(カンマ)で区切って記述します。

どちらも、カンマで区切って複数指定できます。

// 呼び出し側
String n = “速水剛留”
int a = 24;
String result = createIntro( n , a );
   :

// メソッド側
static String createIntro(String name , int age) {

    String intro = name + “(” + age + “)”;

    return intro;
}

この例では、メソッド側は String型 の name という仮引数と
int型 の age という仮引数を カンマで区切っています。

呼び出し側では、String型変数 n と int型変数 a の値を
実引数として指定していますが…

こちらもカンマで区切って 記述しています。

引数の区切りは カンマ 。押さえておきましょう。

②並び順

引数が複数ある場合、呼び出し側は メソッド側で定義された仮引数の

・個数
・並び順

に合わせて 実引数を 渡す必要があります。

例えば、仮引数と2つ、String型 の name, int型のage と
定義されたメソッドを呼び出す場合。

個数と型の並びが同じ場合はOKですが
個数が違う場合にはNGです。

また、個数は同じでも、並び順が一致しない場合もNGです。

③引数なしの場合

仮引数がないメソッドも定義できます。

例を見てみましょう。

// 呼び出し側
  :
String str = getDelimiter();
  :
// メソッド側
static String getDelimiter() {
    return “—————-“;
}

メソッド側では、このように定義する時に
メソッド名の後の 丸括弧の中を 空にします。

この丸括弧 自体は省略できません。

呼び出し側も、呼び出す時の丸括弧の中を
空にすればOKです。

こちらも、丸括弧は省略できません。
必ず書く必要があります。

丸括弧はメソッドの目印のようなもので
引数がない場合でも省略できない
と認識しておきましょうね。

彩香
引数を複数書けると便利ですね。
カンマで区切ること、バッチリ習得しました!
剛留
() 丸括弧はメソッドの目印なので
引数が無い時にも必要なんですね。

メソッドと ()丸括弧 をセットにして
イメージしておきます!

【3】戻り値なし

戻り値のないメソッドも定義することができます。

メソッドを定義する時には、戻り値の型として
void を記述します。

また、return の右側には何も記述しないか
return 自体を省略する事もできます。

呼び出し側は、メソッド名(実引数カンマ区切り)で
呼び出す事は今まで通りですが…

戻り値がないため、結果を値に代入したり
演算に使用することはできません。

// 呼び出し側
String name = “河合”;
displayGreeting(name);

// メソッド側
static void displayGreeting(String name) {

    System.out.println(“こんにちは、” + name + ” さん。”);

    return; // 省略可
}

この例は、String型の仮引数 name を受け取って
挨拶を表示するメソッドで、戻り値がありません。

この場合には、定義する時にはメソッド名の左側に
void を記述しています。

メソッドの最後に return; を記述していますが
その右側には何も記述しません。

また、この return 自体も省略することができて…

その場合、メソッドのブロックが終了した時に
呼び出し側に戻る形になります。

呼び出し側は、displayGreeting(name)
とメソッド名と実引数を記述していますが…

戻り値はありませんので、結果を変数に代入するなどを
行うことはできません。

彩香
戻り値がないということは
ただ処理を してもらう時に使うのですね。

結果が戻ってこないので、戻り値を使う事はできない
…という事も理解しました。

剛留
メソッド定義の時には
戻り値の型に void を指定する事 『OK牧場』です。

それと、return の右側に 戻り値を書かない
または return 自体を省略できることも『OK牧場』。

【まとめ】

●メソッドの引数・戻り値バリエーション

【1】String型
・引数は基本データ型を使える。

・参照型も使うことができる。
 ( String型など可 )

【2】引数の数・並び
①複数の引数

・複数の引数を指定できる。

・メソッド側、呼び出し側とも
 複数の引数を ,(カンマ)で
 区切る。

②並び順

・呼び出し側は、メソッド定義に
 合わせる必要がある。

 ・引数の個数
 ・引数の並び順

③引数なしの場合

・定義時には ()丸括弧の中を
 空にする。
 丸括弧は省略不可。

・呼び出し側も ()丸括弧の中を
 空にする。
 丸括弧は省略不可。

【3】戻り値なし
・定義する時の戻り値の型に
 void を記述する。

・return の右側には
 何も記述しない。または
 return 自体を省略できる。

・呼び出し側は、戻り値が
 ないので、代入・演算などに
 使用できない。