day11_OverloadingTestEx09

육희영·2021년 10월 26일
0
package com.java1.day11;

//한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 메서드 오버로딩 이라 한다.
//하나의 메서드 이름으로 여러 기능을 구현 할수 있다.
//메서드의 이름을 절약할 수 있다.
//오버로딩의 조건
//- 메서드 이름이 같아야 한다. 
//- 매개변수의 개수 또는 타입이 달라야 한다. 
//- 매개변수는 같고 리턴타입이 다른 경우는 오버로딩이 성립되지 않는다. 
//   (리턴타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다.) 
public class OverloadingTestEx09 {

	public static void main(String[] args) {
		MyMath3 mm2 = new MyMath3();
		System.out.println("mm2.add(3, 3) 결과:" + mm2.add(3, 3));
		System.out.println("mm2.add(3L, 3) 결과: " + mm2.add(3L, 3));
		System.out.println("mm2.add(3, 3L) 결과: " + mm2.add(3, 3L));
		System.out.println("mm2.add(3L, 3L) 결과: " + mm2.add(3L, 3L));

		int[] a = { 100, 200, 300 };
		System.out.println("m2.add(a) 결과: " + mm2.add(a));
	}

}

class MyMath3 {
	int add(int a, int b) {
		System.out.print("int add(int a, int b) - ");
		return a + b;
	}

	long add(int a, long b) {
		System.out.print("long add(int a, long b) - ");
		return a + b;
	}

	long add(long a, int b) {
		System.out.print("long add(long a, int b) - ");
		return a + b;
	}

	long add(long a, long b) {
		System.out.print("long add(long a, long b) - ");
		return a + b;
	}
	
	int add(int[] a) { // 배열의 모든 요소의 합을 결과로 돌려준다. 
		System.out.print("int add(int[] a) - ");
		int result = 0;
		for (int i = 0; i < a.length; i++) {
			result += a[i];
		}
		return result;
	}

} //end of class

출력결과

int add(int a, int b) - mm2.add(3, 3) 결과:6
long add(long a, int b) - mm2.add(3L, 3) 결과: 6
long add(int a, long b) - mm2.add(3, 3L) 결과: 6
long add(long a, long b) - mm2.add(3L, 3L) 결과: 6
int add(int[] a) - m2.add(a) 결과: 600

0개의 댓글

관련 채용 정보