ch 6-30,31過負荷

8515 ワード

かふか

  • クラス内で複数の同名メソッドを定義する
  • ex )
    void println()
    void println(boolean x)
    void println(int x )
    ...
    過負荷条件を満たす
  • メソッド名は同じでなければなりません.
  • パラメータの個数またはタイプは異なる必要があります.
  • 返却タイプは影響しません.
  • ex )
    int add(int a, int b) { return a+b; }
    int add(int a , int b , int c ) { return a +b + c ; }
    int add(int a , long b) {return a+b; }
    int add(long a,int b) { return a+b; }
    →3つの条件が成立
    class Ex6_10 {
    	public static void main(String args[]) {
    		MyMath3 mm = new MyMath3();
    		System.out.println("mm.add(3, 3) 결과:"    + mm.add(3,3));
    		System.out.println("mm.add(4L, 3) 결과: "  + mm.add(4L,3));
    		System.out.println("mm.add(3, 5L) 결과: "  + mm.add(3,5L));
    		System.out.println("mm.add(3L, 8L) 결과: " + mm.add(3L,8L));
    		int[] a = {100, 200, 300};
    		System.out.println("mm.add(a) 결과: " + mm.add(a));
       }
    }
    class MyMath3 {
    	int add(int a, int b) {
    		return a+b;
    	}
    	long add(int a, long b) {
    		return a+b;
    	}
    	long add(long a, int b) {
    		return a+b;
    	}
    	long add(long a, long b) {
    		return a+b;
    	}
    	int add(int[] a) {		// 배열의 모든 요소의 합을 결과로 돌려준다.
    		int result = 0;
    		for(int i=0; i < a.length;i++) 
    			result += a[i];
    		return result;
    	}
    }