티스토리 뷰
반응형
참고 : https://data-make.tistory.com/201 (생성자 Overloading)
#. 메서드 Overloading
* 하나의 클래스에 동일한 이름의 메서드가 여러개 중복되어 정의되는 것
> 변수의 중복 선언
- 데이터 타입이 달라도 변수 이름이 동일한 경우 허용하지 않음
> 메서드의 중복 정의
- 변수와 달리 하나의 클래스에 동일한 이름의 메서드는 여러개 정의 가능
- 매개변수의 개수와 타입을 통해 실행될 메서드를 구분할 수 있기 때문
- JAVA와 같은 객체지향 언어에서만 제공되는 독특한 문법
1 2 3 4 | public void printData(int data) { } public void printData(double data) { } public void printData(char data) { } public void printData(String data) { } | cs |
> 메서드 Overloading의 유형
1. 매개변수의 개수와 타입이 모두 다른 경우 => Overloading
1 2 3 4 5 | class Overloading { void calc() { ... } void calc(double d) { ... } void calc(int x, int y) { ... } } | cs |
2. 리턴 타입이 다른 경우 => error
1 2 3 4 | class Overloading { void calc(int x, int y) { ... } void calc(int x, int y) { ... return x + y ;} } | cs |
3. 매개변수의 이름이 다른 경우 => error
1 2 3 4 | class Overloading { void calc(int x, int y) { ... } void calc(int a, int b) { ... } } | cs |
4. 매개변수의 개수와 타입이 같지만 순서가 다른 경우 => Overloading
1 2 3 4 | class Overloading { void calc(double x, int y) { ... } void calc(int y, double x) { ... } } | cs |
5. 매개변수가 형변환된 다른 타입인 경우 => Overloading
1 2 3 4 5 6 7 8 9 10 11 | class Overloading { void calc(double x) { ... } void calc(int x, int y) { ... } } public class Test { public static void main(String[] args) { ... over.calc(45); // int는 double로 묵시적 형변환이 가능 ... } | cs |
출처 : SW Expert Academy
반응형
'Web > JAVA' 카테고리의 다른 글
[JAVA] this()의 의미와 사용 (0) | 2019.07.26 |
---|---|
[JAVA] 생성자 Overloading (0) | 2019.07.26 |
[JAVA] 이클립스 메서드 자동 구현 (Getter/Setter, toString) (0) | 2019.07.25 |
[JAVA] 메서드 정의, 구성 (0) | 2019.07.25 |
[JAVA] 접근 제한자 (0) | 2019.07.25 |
댓글