catch-img

Javaの引数について基本的な考え方。参照渡しの注意点も解説

引数はプログラムを組む上で重要な要素です。引数の理解を曖昧にしておくと、Javaを扱うのが難しくなります。ここでは、引数に対する基本的な考え方について解説します。引数の扱いや参照渡しについて、理解を深めましょう。

目次[非表示]

  1. 1.Javaの引数(ひきすう)はメソッドに渡すデータ
    1. 1.1.引数には整数や文字列のほか配列も渡せる
    2. 1.2.呼び出し元のメソッドに値を戻す戻り値
  2. 2.引数を使ってメソッドにデータを渡す方法
    1. 2.1.データの渡し方と注意点
    2. 2.2.基本データ型と参照型がある
  3. 3.Javaの引数で初心者が理解しづらいポイント
    1. 3.1.可変長引数について
    2. 3.2.戻り値がnullの可能性があればoptional
    3. 3.3.メソッド引数にfinal修飾子を付ける意味
  4. 4.Javaメソッドの引数の書き方を覚えよう

Javaの引数(ひきすう)はメソッドに渡すデータ

プログラムにおいて、「この値を使ってデータを処理して欲しい」というときに、渡す値のことを引数(ひきすう)といいます。

Javaにおいては、メソッドを呼び出すときに、後ろの()内に入れる値のことです。

System.out.println("hello world");

この場合、「hello world」が引数として扱われます。引数の仕組みについて、下記でより詳しく見ていきましょう。

引数には整数や文字列のほか配列も渡せる

引数について、下記のコードを元に具体的に見ていきましょう。

class Main {
 public static void main(String[] args) {
  printData("会社員A", 30);
 }
 public static void printData(String name, int age) {
  System.out.println(name + "の年齢は" + age + "歳です");
 }
}

上記において「会社員A」「30」はどちらも引数にあたります。このように、引数は複数を指定することも可能です。この処理を実行すると、以下のように表示されます。

会社員Aの年齢は30歳です

このように文字列と整数の両方、また、配列を引数とすることもできるので、覚えておきましょう。

呼び出し元のメソッドに値を戻す戻り値

引数とセットで覚えておきたいのが「戻り値」です。戻り値とは、引数を引き渡した結果、返って来る値のことを指します。

public class Main {
  public static void main(String[] args) {
    int difference = subtract(10,4);
    System.out.println(difference);
  }
   public static int subtract(int a, int b){
      return a-b;
  }
}

上記の文で「a-b」という式の結果を戻り値として返しています。a=10でb=4なので、「6」という値が戻り値です。

引数を使ってメソッドにデータを渡す方法

引数の使い方について、詳しく見ていきましょう。データの渡し方と注意点、種類について解説します。

データの渡し方と注意点

データを渡す方法は、「メソッド名(引数)」を記載することです。

public class Main {
  public static void main(String[] args) {
    String name = "リンゴ";
    like(name);
  }
  private static void like(String name) {
    System.out.println(name + "が大好物です");
  }
}

このプログラムを実行すると、結果は次のようになります。

リンゴが大好物です

「like(name)」という記述によって、likeメソッドにnameという引数を引き渡しています。

呼び出したメソッド内で使用した変数の値も、呼び出し元のメソッドの中では使用できない点には注意が必要です。メソッドで算出した値を戻したい場合には「戻り値」を使う必要があります。

基本データ型と参照型がある

引数を使ってデータを渡すには、「基本データ型」(プリミティブ型)を使う方法と、「参照型」を使う2種類の方法があります。

基本データ型とは、intやcharなどの、プログラム言語において元々用意されている変数の型を使う方法のことです。

int a = 0;
int b = a;
b = 10;

bに新しいデータを引き渡していますが、aの値は変わりません。aを出力しても「0」という値を返します。

一方、参照型は基本型のように値そのものを保持するのではなく、値が置いてある場所そのものを保存する方法のことです。

int a[] = {1};
int b[] = a;
b[0] = 4;

3行目の「b[0]=4」という記述により、aとbの参照先の値を書き換えています。この場合、a[0]を出力すると4という値を返してきます。

参照型値では、参照先の値を書き換えるという特性があります。引数を使う場合は、まずは基本型と参照型のどちらを用いるのかを考える必要があるでしょう。

短期講座(Java入門5日、基礎10日コース)-株式会社ジョブサポート

Javaの引数で初心者が理解しづらいポイント

引数を理解する上で、特に初心者がつまづいてしまうポイントについて解説します。以下の点を踏まえた上でJavaの学習を進めていきましょう。

可変長引数について

引数の個数を変えられる引数のことを「可変長引数」と呼びます。引数の型が同じであれば、個数にかかわらず使うことが可能です。

可変長引数であることを定義するために、引数のデータ型のすぐ後ろに「...」(ピリオド3つ)を付けます。

可変長引数は配列を指定することも可能で便利なものですが、引数を1つしか指定できない、オーバーロード(並び順が違うメソッドを2つ以上定義すること)では使えないなどの細かいルールがあります。

戻り値がnullの可能性があればoptional

値が入っていない状態を「null」といいます。プログラム開発においては、nullを返すことで意図しないエラーが発生することもあり、「nullの値が戻ってきたときにどんな処理を行うか」を記述する必要がありました。

現在は「optionalクラス」を使うことで、この問題を解決することができます。optionalの書き方は次のとおりです。

Optional<T> オブジェクト名 = Optional.ofNullable(nullを返す可能性があるオブジェクト名);

エラーを防ぐのにも有効ですし、コードをシンプルにすることもできます。便利ですが、戻り値以外では使うことができないので注意しましょう。

メソッド引数にfinal修飾子を付ける意味

引数を記述する上で、次のようにfinalを付けることがあります。

private static void hello(final String name)

finalを付けると、メソッド内で値の変更が不可能になります。引数が渡されたときと同じ値を保持するときに使うと便利です。

メソッドの内容や変数の値、クラスを変えたくないときには、final修飾子を利用しましょう。

Javaメソッドの引数の書き方を覚えよう

Javaに限らず、プログラム作成する上では引数は必ず用いることになります。引数には参照型や基本型などの種類、修飾子などがあり、一つ一つの意味をきちんと理解することが求められます。

引数について理解を深めることは、Javaでできることの範囲を広げることにつながりますので、書き方について覚えるようにしましょう。

資料請求はこちらから

職場で使用されているアドレスをご記入下さい。

アップロードしています。少々お待ちください。