Back-End/Java
[자바 / Java] 메서드 오버로딩(Method Overloading)
Kangharyeom
2022. 9. 2. 17:39
728x90
loading이란 보조기억장치(SSD, HDD)에서 주기억장치(Memory)로 데이터를 불러오는 것을 뜻한다. overloading은 loading에 over라는 접두사가 합쳐진 형태로 '과적하다'라는 의미를 담고 있다.
즉, 용달차량에 물건을 차곡차곡 겹치듯이 적재되는 것을 뜻한다.
그렇다면 오버로딩의 조건은 어떻게 될까?!
오버로딩
오버로딩의 조건은 메소드의 이름이 같고 메개변수의 개수나 타입이 달라야 한다.
오버로딩의 장점은 하나의 메서드를 가지고 여러가지 값을 출력 할 수 있다는 것이다.
가령 , a,() 라는 메서드를 활용하여 정수(int)를 변수타입으로 하는 변수 하나와 정수(int)를 변수타입으로 하는 변수 두개와 실수(double)를 변수타입으로 하는 실수 하나를 출력 할 수 있다는 것이다.
예시를 보며 이해하자.
public class Truck {
public static void main(String[] args) {
Truck foods = new Truck(); // 객체 생성
foods.item(); // 메서드 호출
foods.item(7);
foods.item(3.4);
}
}
class Truck {
public void item() { // 메서드 오버로딩. 화물칸에 실린 물건
System.out.println("물건");
}
public void item(int apple) {
System.out.println("사과 개수 = " + apple);
}
public void item(double banana) {
System.out.println("바나나 무게 = " + banana);
}
}
다시 한번 용달차를 생각해보자
a라는 용달차에 음식(변수 타입: int)과 음료(변수타입: double)가 실려있다.
오버로드는 'a'라는 용달차에 음식과 음료가 적재되어 있는 것을 뜻한다.
그리고 우리가 '음식을 용달차에서 꺼내오는 것'은 int를 출력하는 것과 같다.
또는 '음료를 꺼내오는 것'은 double 을 출력하는 것과 같다.
따라서 오버로딩은 하나의 메서드로 여러 경우의 수를 해결 할 수 있다.
마치, 용달차에 사과, 바나나, 망고를 실을 수 있듯이 말이다.