반응형
class
Calculator{
int
left, right;
int
third =
0
;
public
void
setOprands(
int
left,
int
right){
System.out.println(
"setOprands(int left, int right)"
);
this
.left = left;
this
.right = right;
}
다음의 예제에서 setOprands 메소드의 매개변수를 3개로 변경하여 3가지의 숫자를 더하려고 할때처럼
하나의 메소드에 여러가지 경우의 수.. 즉 같은 이름에 여러기능을 추가하고자 할때 사용할때
이를 메소드의 오버로딩(method overloading)이라 한다.
class
Calculator{
int
left, right;
int
third =
0
;
public
void
setOprands(
int
left,
int
right){
System.out.println(
"setOprands(int left, int right)"
);
this
.left = left;
this
.right = right;
}
public
void
setOprands(
int
left,
int
right,
int
third){
System.out.println(
"setOprands(int left, int right, int third)"
);
this
.left = left;
this
.right = right;
this
.third = third;
}
public
class
CalculatorDemo {
public
static
void
main(String[] args) {
Calculator c1 =
new
Calculator();
c1.setOprands(
10
,
20
);
c1.setOprands(
10
,
20
,
30
);
다음 예시처럼 setOprands에 매개변수가 2개가 아닌, 3개의 메소드를 똑같은 이름으로 선언할 경우
자바는 이를 같은 메소드로 판단하지 않고, 이름이 같은 다른 메소드로 판단하여.
main에서 2개의 매개변수를 입력할 경우, 그에 맞게 2개의 매개변수를 사용하는 메소드로 동작하고
마찬가지로 3개의 매개변수를 입력할 경우, 그에 맞게 자바는 3개의 매개변수를 사용하는 메소드로 동작하게 된다.
이경우
첫번째 setOprands엔
this
.left = left;
this
.right = right;
두번째 setOprands엔
this
.left = left;
this
.right = right;
this
.third = third;
위 처럼 각 메소드에는 동일한 동작을 하는 코드가 등장한다
super.setOprands
https://opentutorials.org/course/1223/6088
이때 같은 이름의 메소드가 다른 매개변수(입력값으로 이루어져 여러개로 선언될때 이를 메소드 오버로드라고 한다.
(예시 SetOprand 메소드가 여러개 선언되어 있으며 인자가 각각 다르다)
반응형
'프로그래밍 > Java (기초)' 카테고리의 다른 글
객체지향 프로그래밍 (1) | 2016.04.13 |
---|---|
overriding (0) | 2016.03.28 |
인터페이스(interface) (0) | 2016.03.26 |
상속(inheritance) (0) | 2016.03.26 |
초기화와 생성자(Constructor), this, super (0) | 2016.03.26 |