Java 강의

자바 오버로딩 / 메소드 오버로딩 / 생성자 오버로딩

iIxmont 2017. 9. 15. 15:22

이번 글에서는 오버로딩에 대해서 알아보도록 하겠습니다.

오버로딩의 정의는 다음과 같습니다.

 

오버로딩

같은 이름의 메소드 또는 생성자를 매개변수의 개수나 타입을 다르게 적음으로써 여러번 정의하고 사용할 수 있게 되는 것

 

코드를 통해서 더 쉽게 알아보겠습니다.

 

먼저 메소드를 오버로딩하는 경우입니다.

 

메소드 오버로딩

코드를 보시면 plus라는 같은 이름의 메소드를 네번이나 정의하고 있습니다.

4개의 plus메소드는

int a,int b

int a,int b,int c

String a,String b

String a,int b

이렇게 매개변수의 개수 또는 타입이 다릅니다.

자바에서는 코드처럼 같은 이름의 메소드라도 매개변수(파라미터)의 개수나 타입이 다르면 반복해서 정의할 수 있습니다.

 

메소드 오버로딩의 사용

메소드 오버로딩은 이렇게 사용 할 수 있습니다

 

위의 코드에서 정의한 메소드를 매개변수를 다르게 전달함으로써 각자 다른 메소드를 호출합니다

 

다음은 생성자의 오버로딩 입니다.

 

생성자 오버로딩

 

1
2
3
4
5
6
7
8
9
10
11
class Car{
    private String color;
    private int speed;
    public Car(String c) {//생성자
        color = c;
    }
    public Car(String c, int s) {//매개변수의 타입과 개수를 다르게 적어서 생성자 오버로딩
        color = c;
        speed = s;
    }
}
cs

 

코드를 보시면 Car라는 같은 이름의 생성자를 2번 정의하고 있습니다.

2개의 Car 생성자는

String c

String c , int s

이렇게 매개변수의 개수 또는 타입이 다릅니다.

자바에서는 코드처럼 같은 이름의 생성자라도 매개변수(파라미터)의 개수나 타입이 다르면 반복해서 정의할 수 있습니다.

 

생성자 오버로딩의 사용

 

1
2
3
4
5
6
public class CarTest {
    public static void main(String[] args) {
        Car c1 = new Car("자동차2");    //첫번째 생성자를 사용합니다
        Car c2 = new Car("자동차1",200);//두번째 생성자를 사용합니다
    }
}
cs

 

생성자 오버로딩은 이렇게 사용 할 수 있습니다

위의 코드에서 정의한 생성자를 매개변수를 다르게 전달함으로써 각자 다른 생성자를 호출합니다

 

이번 글에서는 오버로딩에 대해서 알아보았습니다.

jswoo030@gmail.com 으로 질문을 보내시면 빠른 답변을 받으실 수 있습니다.

여러분의 자바 실력이 빠르게 향상되시길 바랍니다.