오버로딩은 다른 메소드가 같은 이름을 가질 수 있게 되는 것을 의미합니다.
간단한 계산기 코드
class cal1{
int left, right;
public void setOprands(int left, int right) {
this.left = left;
this.right = right;
}
public void sum() {
System.out.println(this.left + this.right);
}
}
public class cal{
public static void main(String[] args) {
cal1 c1 = new cal1(); //객체화
c1.setOprands(10, 20);
c1.sum();
}
}
이 더하기 계산 코드의 문제점은 무엇일까요??
바로 두 개만 더할 수 있다는 것입니다.
세 가지를 더하고 싶으나, 그렇게 되면 오류가 발생하게 됩니다.
이런 경우 어떻게 하면 두 가지 수의 덧셈과 세 가지 수의 덧셈을 한 메소드로 동시에 처리할 수 있을까요?
바로 오버로딩을 사용하는 것입니다. 다음의 예제를 봐봅시다.
class cal1{
int left, right,third;
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 void sum() {
System.out.println(this.left + this.right + this.third);
}
}
public class cal{
public static void main(String[] args) {
cal1 c1 = new cal1(); //객체화
c1.setOprands(10, 20);
c1.sum();
c1.setOprands(10, 20, 30);
c1.sum();
}
}
똑같은 이름의 메소드를 선언해주고, 들어가는 매개 변수의 수만 바꿔준 코드입니다. 이게 어떻게 가능할까요? 중복돼서 에러가 날 것은데요. 하지만 자바 입장에서는 메소드 이름이 같다고 하더라도, 데이터 타입이나 매개 변수가 달라질 경우 다른 메소드로 인식하게 됩니다. 이것을 바로 메소드 오버로딩이라고 합니다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Android java] bottom navigation bar icon 설정 안됨 해결 (0) | 2021.11.18 |
---|---|
[Android java] background custom 그라데이션 그림자 주는 법 (0) | 2021.11.17 |
[java] 8강 Overriding 이란? (0) | 2021.11.13 |
[java 7강] 상속과 생성자 (2/2) (0) | 2021.11.12 |
[java 7강] 상속과 생성자 (1/2) (0) | 2021.11.11 |