メソッドのオーバーロード

引数はありません
引数は int型です>  123
引数は int型と string型です>  123オーバーロード
 -- Press any key to exit (Input "c" to continue) --
同じ名前で引数の異なるメソッドを定義(オーバーロード)します。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. メモ帳などでタイプして OverLoad.java の名前で保存して下さい。
    //★ メソッドのオーバーロード    前田 稔
    class OverLoad
    {
        public static void main(String args[])
        {   int     v = 123;
            String  str = "オーバーロード";
            print();
            print(v);
            print(v, str);
        }
    
        static void print()
        {
            System.out.println("引数はありません");
        }
    
        static void print(int x)
        {
            System.out.println("引数は int型です>  " + x);
        }
    
        static void print(int a, String b)
        {
            System.out.println("引数は int型と string型です>  " + a + b);
        }
    }
    
  2. ソースプログラムをコンパイルして class オブジェクトを実行して下さい。
    コンパイルの詳細は Java を動かす を参照して下さい。
    ページ先頭のメッセージが表示されたら完成です。

プログラムの説明

  1. このプログラムでは print() の名前で三種類のメソッドを使い分けています。(._.)
    名前は同じですが、引数の違いによってどのメソッドが呼ばれるかが決まります。ヽ(^^ )
    これをメソッドのオーバーロードと言います。
    最初は引数の無いメソッドを呼び出します。
    次は int を引数にしてメソッドを呼び出します。
    最後に int と String を引数にしてメソッドを呼び出します。
        public static void main(String args[])
        {   int     v = 123;
            String  str = "オーバーロード";
            print();
            print(v);
            print(v, str);
        }
        
  2. 呼び出される三種類のメソッドです。
    名前は同じですが、引数に違いがあります。
        static void print()
        {
            System.out.println("引数はありません");
        }
        static void print(int x)
        {
            System.out.println("引数は int型です>  " + x);
        }
        static void print(int a, String b)
        {
            System.out.println("引数は int型と string型です>  " + a + b);
        }
        

【NOTE】

main() から次のメソッドをコールして下さい。
print(str);
String だけを引数に取るメソッドが定義されていないので、コンパイルエラーになります。
シンボルを見つけられません

コンパイラのエラーメッセージは解り難いのが常識です。
「シンボルを見つけられません」の意味は print() や str が見つからないのでは無く、str と型が一致するメソッドが見つからないの意味です。

超初心者のプログラム入門(Java2)