본문 바로가기
Java 강의

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

by 자유코딩 2017. 9. 15.

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

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

 

오버로딩

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

 

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

 

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

 

메소드 오버로딩

코드를 보시면 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 으로 질문을 보내시면 빠른 답변을 받으실 수 있습니다.

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

댓글