今回は「引数」とは何か、書き方など具体例を踏まえながら解説します。
引数(ひきすう)とは
引数とは、メソッドを呼び出すときに渡す値のことです。
引数を理解することで、プログラム全体の効率を良くすることができます。
身近な例でいうと「System.out.println(“Hello World“);」があります。
これは、printlnメソッドに引数として「“Hello World“」を指定しています。
引数を受け取ったprintlnメソッドは、コンソールに「“Hello World“」を出力するためのコードを実行していました。
値渡しと参照渡し
引数には値渡しと参照渡しという、2種類の値の渡し方があります。
これらは、引数のデータ型が「基本データ型」か「参照型か」によって変わります。
値渡し
値渡しは変数に格納されているデータの中身をコピーして渡し、その変数自体は変わらない値の渡し方です。
public static void main(String[] args) {
        int num = 10;
        System.out.println("メソッド呼び出し前:" + num);
        test(num);
        System.out.println("メソッド呼び出し後:" + num);
}
public static int test(int num) {
        num = 20;
        return num;
}
実行結果
メソッド呼び出し前:10
メソッド呼び出し後:10
この例は、①mainメソッドでint型変数numを初期化、②testメソッドを呼び出してコピーされた10を引数として渡す、③testメソッド内でnumを20に変更、④mainメソッドで再度表示、という内容です。
test(num)の値はtestメソッドで変更されたため20ですが、変更された値はコピーされたものだったため10のままです。よって、メソッド呼び出し後でもnumの値は10のままです。
参照渡し
参照渡しは、元の変数に格納されていたデータの内容が変わる渡し方です。データが入っていたメモリの場所を指す参照値を渡します。
public static void main(String[] args) {
        String[] array = {"りんご", "いちご", "ばなな"};
        System.out.println("メソッド呼び出し前:" + array[0]);
        test(array);
        System.out.println("メソッド呼び出し後:" + array[0]);
}
public static String test(String[] array) {
        array[0] = "ぶどう";
        return array[0];
}
実行結果
メソッド呼び出し前:りんご
メソッド呼び出し後:ぶどう
この例は、この例は、①mainメソッドでString型array配列を初期化、②testメソッドを呼び出してarray配列の参照値を引数として渡す、③testメソッド内でarray[0]を「ぶどう」に変更、④mainメソッドで再度表示、という内容です。
testメソッドに渡されたarrayは値渡しの場合とは異なり、コピーではありません。そのため、mainメソッド内のarrayとtestメソッド内のarrayは同一の配列を扱っています。よって、testメソッドでの変更がmainメソッドのarray配列に反映され、表示内容が変化しました。
引数の使い方
引数の使い方は、以下の2点です。
- メソッドを呼び出す際に「()」の中に引数として渡したいデータを書く
 - 呼び出されるメソッドのメソッド名の横にある「()」にデータ型と変数を書く
 
これをかみ砕いて言うと、「メソッドを呼び出したので、そのメソッドの処理に移ってください。その際、この値を持って行って、処理に使ってください」ということになります。
データの渡し方
メソッドを呼び出す側が実際に指定する値のことを「実引数(じつひきすう)」と呼びます。実引数では、文字列や数字などを指定します。
修飾子 戻り値 メソッド名1(){
        メソッド名2(実引数);
}
データの受け取り方
外部から受け取る値を表す変数のことを「仮引数(かりひきすう)」と呼びます。仮引数では、実引数に合った変数名を付けるようにしましょう。
修飾子 戻り値 メソッド名2(データ型 仮引数){
        // 処理
}
複数の引数を渡す
引数は「(5, 7)」のように、カンマ(,)を書くことによって複数個指定することができます。
その場合、引数は異なるデータ型でも使うことができます。
public class Sample {
        public static void main(String[] args){
                display ("鈴木", 20);
                display ("佐藤", 25);
        }
       
        public static void display(String name, int old){
                System.out.println("名前: " + name + "さん 年齢: " + old);
        }
}
実行結果
名前: 鈴木さん 年齢: 20
名前: 佐藤さん 年齢: 25
引数を使ったサンプルコード
それでは、引数を使った簡単なサンプルコードを書いてみましょう。
以下のコードでは、戻り値を扱います。
サンプルコード
public class Calculation {
       
        public static void main(String[] args){
               
                // plusメソッドに引数として10と5を渡す
                System.out.println("加算: " + plus(10, 5));
                 
                // minusメソッドに引数として7と3を渡す
                System.out.println("減算: " + minus(7, 3));      
                 
                // multiplyメソッドに引数として2と8を渡す
                System.out.println("乗算: " + multiply(2, 8));
                 
                // divideメソッドに引数として18と6を渡す
                System.out.println("除算: " + divide(18, 6));
        }
       
        // num1に10、num2に5を受け取る
        public static int plus(int num1, int num2){
                int sum = num1 + num2;
                return sum;
        }
       
        // num1に7、num2に3を受け取る
        public static int minus(int num1, int num2){
                int sum = num1 - num2;
                return sum;
        }
       
        // num1に2、num2に8を受け取る
        public static int multiply(int num1, int num2){
                int sum = num1 * num2;
                return sum;
        }
       
        // num1に18、num2に6を受け取る
        public static int divide(int num1, int num2){
                int sum = num1 / num2;
                return sum;
        }
}
実行結果
加算: 15
減算: 4
乗算: 16
除算: 3
まとめ

今回は、引数について触れてきました。
引数の理解を深めることで、プログラムを作る際のできることを増やすことに役立ちます。
この機会に引数の使い方を覚えて、実際にプログラムを組んでみてください!
無料のプログラミングスクール「テクドリ」の卒業生のインタビュー動画を、インスタグラムほか公式SNSにて公開中!