1

この記事の目次



このページは「オーバーロードとオーバーライド」の演習問題です。「オーバーロードとオーバーライド」の基礎を学びたい方はこちらで参考してください。

1.  二値の最大値・三値の最大値を求めるメソッド


問題:二つのint型と三つのint型の最大値を求めるメソッドmaxOf()を作成する

解答例
package helloworld;
   
public class HelloWorld {
         
    public static void main(String[] args) {
        
        int x = 3,y = 4, z= 5;
        System.out.println("x,yの最大値:" + maxOf(x, y));
        System.out.println("x,y,zの最大値:" + maxOf(x, y, z));
              
    }
    
    //2つの引数がある時の最大値
    static int maxOf(int a,int b) {
        return a > b ? a:b;
    }
    
    //3つの引数がある時の最大値
    static int maxOf(int a, int b, int c){
        int max = a;
        if (b > max)
            max= b;
        if (c > max)
            max = c;
        return max;
    }
    
}

実行結果:
x,yの最大値:4
x,y,zの最大値:5

上の例はオーバーロードの簡単な例題です。メソッド呼び出しときに、どのメソッドを呼び出すかと行った指定は不要です。それぞれに適したメソッドが自動的に選択されて呼び出されるからです。

2.  型が違う値の絶対値を求めるメソッド


問題:intの整数x、long型整数x,float型の実数x,double型実数xの絶対値を求めるメソッドを作成する

解答例
package helloworld;
   
public class HelloWorld {
         
    public static void main(String[] args) {
        int a = 1;
        long b = -100000;
        float c = 9.08f;
        double d = -9.08;
        
        System.out.println(absolute(a));
        System.out.println(absolute(b));
        System.out.println(absolute(c));
        System.out.println(absolute(d));
              
    }
    
    //int型の引数の絶対値
    static int absolute(int x) {
        return x > 0 ? x:-x;
    }
    //long型の引数の絶対値
    static long absolute(long x) {
        return x > 0 ? x:-x;
    }
    //float型の引数の絶対値
    static float absolute(float x) {
        return x > 0 ? x:-x;
    }
    //double型の引数の絶対値
    static double absolute(double x) {
        return x > 0 ? x:-x;
    }
    
}

実行結果:
1
100000
9.08
9.08
広告