개발 수업/JAVA

[Java] 클래스/메소드(메소드 오버로딩(overloading))

오늘 하루s 2023. 5. 12. 20:49
728x90
더보기

Day11-2. 230512

메소드

메소드 오버로딩(overloading)

클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것.
단, 매개 변수의 타입, 개수, 순서 중 하나가 달라야 한다.


=> 필요한 이유 : 매개값을 다양하게 받아 처리할 수 있도록 하기위해.
대표적인 예 : System.out.println() 메소드
-> 호출할 때 주어진 매개값의 타입에 따라서 오버로딩된 메소드 중 하나를 호출함.
 
Calculator01 클래스>


1
2
3
4
5
6
7
8
9
10
11
public class Calculator01 {
    //메소드
    //정사각형 넓이 구하기
    double areaRectangle(double width){
        return width*width;
    }
    
    //직사각형 넓이 구하기
    double areaRectangle(double width,double height){
        return width*height;
    }
cs

 

Calculator01 실행클래스>

1
2
3
4
5
6
7
public class Calculator01_ex {
    public static void main(String[] args) {
        //Calculator01클래스 객체 생성
        Calculator01 calc=new Calculator01();
        System.out.println("정사각형넓이="+calc.areaRectangle(10));
        System.out.println("직사각형넓이="+calc.areaRectangle(10,2));    
    }
cs
더보기

* 실행 결과

정사각형넓이=100.0
직사각형넓이=20.0

areaRectangle() 메소드를 오버로딩해서
매개값이 1개이면 정사각형 넓이를, 2개이면 직사각형 넓이를 계산하여 리턴하도록 함.
어떤 메소드가 호출될 것인지는 매개값의 개수에 달려있음.

728x90