【Java】引数とは?値渡し・参照渡し・使い方(サンプルコード)

今回は「引数」とは何か、書き方など具体例を踏まえながら解説します。

引数(ひきすう)とは

引数とは、メソッドを呼び出すときに渡す値のことです。

引数を理解することで、プログラム全体の効率を良くすることができます。

身近な例でいうと「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メソッド内でnum20に変更、④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メソッドでStringarray配列を初期化、②testメソッドを呼び出してarray配列の参照値を引数として渡す、③testメソッド内でarray[0]を「ぶどう」に変更、④mainメソッドで再度表示、という内容です。

testメソッドに渡されたarrayは値渡しの場合とは異なり、コピーではありません。そのため、mainメソッド内のarraytestメソッド内の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

まとめ

今回は、引数について触れてきました。

引数の理解を深めることで、プログラムを作る際のできることを増やすことに役立ちます。

この機会に引数の使い方を覚えて、実際にプログラムを組んでみてください!

まずは無料説明会・体験セミナー

テックドリームは無料のプログラミングスクールです。「プログラマってどういう仕事?」「自分にできるのかな?」という方も、まずは体験セミナーでプログラミングに触れてみませんか?テックドリームは未経験の方を丁寧にサポートする体制をご用意しています。不安なことや、入校までの疑問点なども気軽にご相談いただけます。

Webかんたん予約

専用の予約フォームより、およそ60秒で簡単にお申込みいただけます。

電話でのご予約

Webかんたん予約ができない場合や、ご質問がございましたら、お気軽にお電話ください。

0120-262-242
9:00~18:00(土日祝を除く)
最新情報をチェックしよう!
>テクド・リム

テクド・リム


「テクドリ」の公式キャラクター。
エンジニアだった父の影響を受けて、夢に向かって日々勉強に励むエンジニアのタマゴ。
夢は「世界を変える、すごいエンジニアになること!」

彼女が通うプログラミングスクールについては「テクドリとは」ページにて紹介中!

CTR IMG