Java

[Java] Method OverLoding

98kg 2024. 2. 20. 14:35
OverLoading 이란?

자바의 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의할 수 있다.

 

조건

메소드의 이름이 같고, 매개변수의 개수나 타입이 달라야 한다. 주의할 점은 '리턴 값만' 다른 것은 오버로딩을 할 수 없다는 것이다.

 

 

블랙 박스 클래스에 record 기능을 오버로딩 해보겠습니다.

package Chapter_07;

public class BlackBox {




    void record(boolean showDateTime, boolean showSpeed, int min) {
        System.out.println("녹화를 시작합니다.");
        if(showDateTime){
            System.out.println("영상에 날짜정보가 표시됩니다.");

        }
        if(showSpeed) {
            System.out.println("영상에 속도정보가 표시됩니다.");
        }
        System.out.println("영상은 " + min + "분 단위로 기록됩니다.");
    }
    void record(){
        record(true,true,5); // 기본 정보
    }



}

 

파라미터를 가진 record 를 생성 후 오버라이딩하여 파라미터가 없는 record 를 생성하였습니다

파라미터가 없는 record 를 호출 시 메서드 안에 수행문이 실행 됩니다.

아래는 실행 코드와 실행 결과 입니다.

package Chapter_07;

public class _05_MethodOverLoading {
    public static void main(String[] args) {
        BlackBox b1 =new BlackBox();
        b1.modelName = "까망이";

        b1.record(false,false,10);
        System.out.println("-----------");
        b1.record(true,false,3);
        System.out.println("-----------");
        b1.record(true,true,5);
        System.out.println("-----------");
        b1.record();


    }
}

실행결과