본문 바로가기

Java

메서드 오버로딩(Overloading)

예시)

public class Add {
	int add(int a, int b) {
		int result = a+b;
		return result;
	}
	double addDouble(double a, double b) {
		double result = a + b;
		return result;
	}
	double addIntDouble(int a, double b){
		double result = a+b;
		return result;
	}
	
}

public class AddTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// 2, 3 두수를 주면, 이 두수를 더한 결과를 리턴해주는 함수필요
		Add a = new Add(); 
		System.out.println(a.add(2, 3));
		
		//2.3, 3.541 이 두수를 더한 결과를 받아오고싶다.
		System.out.println(a.addDouble(2.3, 3.541));
		
		System.out.println(a.addIntDouble(3, 1.56));
	}
}

● 클래스에 데이터타입이 정수, 실수, 혼합된 변수를 사용하여 더한 결과를 가져오는 함수를 각각 만들어줬다.

실제로 실무에서 변수에 맞게 함수를 쓰려면 그 함수를 찾아봐야하는 번거로움이 있을 것이다.

따라서 함수 이름을 같게하여 실제로 사용할 때는 함수이름은 쉽게 기억해내고, 변수의 타입만 신경쓰면 되도록 만들어줄것이다. 이것을 메서드 오버로딩이라고 한다

public class Add {
	int add(int a, int b) {
		int result = a+b;
		return result;
	}
	double add(double a, double b) {
		double result = a + b;
		return result;
	}
	double add(int a, double b){
		double result = a+b;
		return result;
	}
//    이렇게도 사용가능하다
//    int add(int a, int b, int c){
//    	return a+b+b;
//    }
}

public class AddTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// 2, 3 두수를 주면, 이 두수를 더한 결과를 리턴해주는 함수필요
		Add a = new Add(); // 자바의 핵심 new class 이름()
		System.out.println(a.add(2, 3));
		
		//2.3, 3.541 이 두수를 더한 결과를 받아오고싶다.
		System.out.println(a.add(2.3, 3.541));
		
		System.out.println(a.add(3, 1.56));
	}

}

'Java' 카테고리의 다른 글

상속 (Parent-Child 관계)  (0) 2023.07.03
생성자 Constructor  (0) 2023.07.03
Static 변수  (0) 2023.07.03
자바 class와 객체(인스턴스) / 자바 메모리 관련 0630  (0) 2023.06.30
자바 함수 0630  (0) 2023.06.30