이번 글에서는 오버로딩에 대해서 알아보도록 하겠습니다.
오버로딩의 정의는 다음과 같습니다.
같은 이름의 메소드 또는 생성자를 매개변수의 개수나 타입을 다르게 적음으로써 여러번 정의하고 사용할 수 있게 되는 것
코드를 통해서 더 쉽게 알아보겠습니다.
먼저 메소드를 오버로딩하는 경우입니다.
메소드 오버로딩
코드를 보시면 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 으로 질문을 보내시면 빠른 답변을 받으실 수 있습니다.
여러분의 자바 실력이 빠르게 향상되시길 바랍니다.
'Java 강의' 카테고리의 다른 글
자바 배열 / 객체 배열 선언 / java array / java object array (0) | 2017.09.21 |
---|---|
Java 프로그래밍 기초 (0) | 2017.09.20 |
자바의 변수 / 기본 타입과 참조 타입 / 메모리의 힙영역과 스택영역 (0) | 2017.09.14 |
객체지향 프로그래밍 / JVM 메모리 스택 , 힙 , 클래스 영역 (0) | 2017.09.14 |
코드 아카데미 두번째 (0) | 2017.09.13 |
댓글