개발일지/Java

Java 메서드 오버로딩(Method Overloading)

E-room 2022. 9. 8. 21:11
728x90
하나의 클래스 안에 같은 이름의 메서드를 여러 개 정의하는 것

 

자바 가상 머신은 메서드의 이름 또는 매개변수의 타입이 다르면 다른 메서드라고 인식한다.

 

메서드 오버로딩을 하려면

  • 같은 이름의 메서드명
  • 매개변수의 개수나 타입이 다름
public class Overloading {
    public static void main(String[] args) {
        Shape s = new Shape(); // 객체 생성
 
        s.area(); // 메서드 호출
        s.area(5);
        s.area(10,10);
        s.area(6.0, 12.0);
    }
}

class Shape {
    public void area() { // 메서드 오버로딩. 같은 이름의 메서드 4개.
        System.out.println("넓이");
    }
    public void area(int r) {
        System.out.println("원 넓이 = " + 3.14 * r * r);
    }

    public void area(int w, int l) {
        System.out.println("직사각형 넓이 = " + w * l);
    }

    public void area(double b, double h) {
        System.out.println("삼각형 넓이 = " + 0.5 * b * h);
    }
}

//출력값
넓이
원 넓이 = 78.5
직사각형 넓이 = 100
삼각형 넓이 = 36.0

 

메서드 오버로딩의 장점 : 메서드 하나하나 일일이 이름을 지을 필요가 없다 ^^

728x90