Javaエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnetJava
  2. Javaコラム
  3. Java TIPS
  4. Javaのオーバーロードについてわかりやすく解説!戻り値の違いではオーバーロードにならない

Javaのオーバーロードについてわかりやすく解説!戻り値の違いではオーバーロードにならない

  • Java TIPS
公開日時:   更新日時:
Javaのオーバーロードについてわかりやすく解説!戻り値の違いではオーバーロードにならない
この記事でわかること
    システム
    エンジニア
    Javaのオーバーロードとはどのようなことなのでしょうか。
    プロジェクト
    マネージャー
    1つのクラスで同じ名前のメソッドを複数実装することです。

    Javaのオーバーロードとは?


    Javaのオーバーロードとは、1つのクラスで同じ名前のメソッドを複数実装することです。同じ名前でどうやって区別するのかと言えば、パラメータのフィールドの型や数、並び順の違いで区別します。

    以下がJavaのオーバーロードの例です。disp_strが2つありますが、別のメソッドとして扱われ、パラメータの違いにより正しく呼ばれます。

    実行すると、以下のように表示されます。

    パラメータがありません
    文字列を渡しました

    戻り値の違いではオーバーロードにならない

    Javaのオーバーロードはパラメータの違いで同名メソッドが別扱いになりますが、戻り値の違いだけでは別扱いになりません。以下の場合はコンパイルエラーになります。

    戻り値があるメソッドは、それを受け取らないことも可能なので、戻り値の有無や型では判別しきれないからです。

    フィールドの名前が違うだけでもオーバーロードにならない

    以下のようにパラメータのフィールド名が違っていても、型が同じだとやはりエラーになります。これもメソッドを呼び出す時、どちらなのか判別ができないからです。

    パラメータの順番が違えばオーバーロードはできる

    ただし、上に似たケースでも、パラメータの順番を入れ替えればオーバーロードができます。以下のJavaサンプルをご覧ください。

    これはエラーにならず、実行すると以下のように表示されます。パラメータの順番が違っていれば、呼び出す時に判別がつくということです。

    1 文字列を渡しました100
    2 文字列を渡しました200

    メソッドのパラメータは通常は型変換をしてくれる

    以下のようなケースの場合、パラメータにint型の100を指定していますが、disp_valの側ではfloat型の100.0fに変換してくれます。

    実行結果は以下になります。

    float型の100.0

    オーバーロードでは型変換をあてにできない

    ところが、以下のJavaサンプルのようにint型とfloat型のオーバーロードを行うと、結果は「int型の100」になります。オーバーロードではパラメータの値が型変換されず、その型で呼び出しが切り替わるということです。

    パラメータの型を適切に指定する

    オーバーロードを使う場合、メソッドを呼び出す時のパラメータの型を適切に指定する必要があるということです。以下のJavaサンプルをご覧ください。

    オーバーロードはパラメータの型を明確にする必要がある

    上のJavaサンプルはdisp_valメソッドを呼び出す側で型を明確にしているので、正しくオーバーロードの呼び分けができます。結果は以下になります。

    char型のa
    byte型の100
    int型の100
    long型の100
    float型の100.0
    double型の100.0

    なおJavaのbyte型は、longのl、floatのf、doubleのdのような接尾語が無いので、(byte)でキャストするか、byte型の変数を渡す必要があります。

    システム
    エンジニア
    オーバーロードはパラメータの型を明確にする必要があるのですね。
    プロジェクト
    マネージャー
    パラメータの違いによって処理が変わることを覚えておきましょう。

    Javaのオーバーロードを有効活用しよう

    Javaのオーバーロードについて解説しましたが、ご理解頂けましたでしょうか。同じメソッド名でパラメータの違いにより処理を変えられるオーバーロードはとても便利なので、是非活用してください。

    FEnetJava・Javaコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    Java新着案件New Job