Developer/JAVA

JAVA ,Method OverLoading 오버로딩에 대하여

단님 2024. 8. 3. 01:00
728x90
메서드명을 동일하게 사용해보자,
overLoad

 

	public void juiceCafe1() { // 메서드의 header
		System.out.println("무슨 주스를 원하시나요 ?"); // 메서드의 body
		System.out.println("메서드 구성 : 매개변수 X void O"); // 메서드의 body
		System.out.println();
	}

일반적인 메서드를 만들어보자,

 

인자를 하나 추가해 놓는다면 , 자바는 다른 메서드로 인식한다.

	public void juiceCafe1(String s) { 
		System.out.println("메서드 명 중복 테스트"); 
		System.out.printf("무슨 주스를 원하시나요 ? %s %n", s);
		System.out.println();
	}

 

 

- 실행

		ex03.juiceCafe1();
		ex03.juiceCafe1("오렌지");

 

 

 

 

메인 메서드도 메서드인데 오버로딩이 가능할까 ?

 

 

	public static void main(int i) {
		System.out.println("오버로딩 테스트");
	}
	
	public static void main(String[] args) { //static 임으로 ,
		//메서드 호출
		Ex03_Method ex03 = new Ex03_Method();

 

아주 특별한 일 없으면 메인을 오버로딩 하는 경우는

드무나 오버로딩이 허용됨으로 오류가 일어나진 않는다.

 

우리가 사용하는 클래스의 메서드들도 같은 이름의 인자가 다른 형태를 볼 수 있다.

 

Integer 의 메서드.

 

 

즉 , 메서드 오버로딩이란

1. 하나의 클래스내에서 메더으 이름의 중복을 허용한다.

2. 단 , 매개변수의 갯수 또는 타입이 반드시 달라야한다.

3. 장점 : 동일한 기능에 대해 메서드 명을 통일 시킬수 있다.

 

장점을 잘 보기 위한 코드

	public static int add (int a , int b) {
		return a+b;
	}
	public static double add (int a , double b) {
		double result = (double)a + b ;
		return result;
	}
	public static double add (double a , int b) {
		double result = a + (double)b ;
		return result;
	}
	public static double add (double a , double b) {
		return a+b;
	}

 

int 형과 double 형에 대해 어떤 순서로 인자가 들어오든

들어오면 더해서 반환 할 수 있는 메서드를 만들 수 있다.

 

 

	public static void main(String[] args) {
		System.out.println("int+int : "+Ex07_overLoading.add(3, 6));
		System.out.println("double+int : "+Ex07_overLoading.add(3.2, 6));
		System.out.println("int+double : "+Ex07_overLoading.add(3, 6.7));
		System.out.println("double+double : "+Ex07_overLoading.add(3.12, 6.41));
	}

 

 

오버로딩은 자주 이용되고 , 사용의 확장성을 주기 때문에 잘 알아두면 요긴하게 쓸 수 있다.