자바

자바 메소드 오버로딩 (method overloading)

iminu 2022. 7. 1. 17:45
// 두 데이터를 더하는 클래스
class Add {
	// 두개의 정수를 더해서 리턴하는 함수
	
	// 함수의 파라미터나, 리턴데이터타입이 다르면,
	// 함수의 이름을 똑같이 할 수 있다.
	// 이런방법을 메소드 오버로딩 이라고 한다.
	public int add(int x, int y) {
		return x + y;
	}
	
	public float add(float x, float y) {
		return x + y;
	}
	
	public double add(double x, double y) {
		return x + y;
	}
	
	public String add(String x, String y) {
		return x + y;
	}
}

public class AddMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// 클래스를 가지고 변수를 만드는것을
		// 객체 생성 이라고 한다.
		Add a = new Add();
		
		int result = a.add(3, 5);
		System.out.println(result);

		float result2 = a.add(3.5f, 1.8f);
		System.out.println(result2);
        
		double result3 = a.add(3.8, 1.9);	
		System.out.println(result3);

		String result4 = a.add("Hello", "bye");	
		System.out.println(result4);
		

	}

}

함수의 이름은 같으나 함수의 리턴타입이나 파라미터가 다른 함수들을 만들 수 있다.

이것을 메소드 오버로딩이라한다.

위의 예제 처럼 함수 이름은 add로 같지만 파라미터를 다르게 받아서 더하기를 수행한다.