반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- SQL
- 생성자쓰는이유
- HAVING
- 자바
- 카카오인턴십
- 작성순서
- int오류
- .substring
- 객체
- 칼럼명에 별칭 지정
- 프로그래머스
- sql오류
- 제어문
- 연산자
- 상속
- 향상된for문
- setter
- 오라클
- SELECT 절
- 생성자
- Java
- getter
- 이터레이블
- 삼항연산자
- Join
- .repeat
- for문
- 겟터
- executeUpdate
- ifelse
Archives
- Today
- Total
CoDream
[JAVA] 오버로딩(Overloading) 본문
728x90
반응형
오버로딩(Overloading)
자바에서 동일한 메서드 이름을 가지고 있지만 매개변수의 타입, 개수, 순서 등이 다른 여러 개의 메서드를 정의하는 것을 말합니다. 이러한 메서드들은 같은 이름을 가지고 있지만 서로 다른 시그니처를 갖습니다.
오버로딩을 사용하면 같은 작업을 수행하는 메서드들을 하나의 이름으로 그룹화하여 사용할 수 있으며, 메서드 이름을 선택적으로 짓는데 유용합니다. 이는 코드의 가독성을 향상시키고 메서드를 호출할 때 메서드 이름만으로도 해당하는 기능을 파악할 수 있게 도와줍니다.
오버로딩의 주요 특징
- 메서드 이름은 동일해야 합니다.
- 매개변수의 개수, 타입, 순서가 달라야 합니다.
- 리턴 타입은 오버로딩에 영향을 주지 않습니다.
public class Calculator {
// 정수형 매개변수를 받는 add 메서드
public int add(int a, int b) {
return a + b;
}
// 실수형 매개변수를 받는 add 메서드 (오버로딩)
public double add(double a, double b) {
return a + b;
}
// 세 개의 정수형 매개변수를 받는 add 메서드 (오버로딩)
public int add(int a, int b, int c) {
return a + b + c;
}
}
**add**라는 메서드를 세 번 정의하였습니다. 각각의 메서드는 매개변수의 타입이나 개수가 다르지만 같은 이름을 가지고 있습니다. 따라서 사용자는 같은 add 메서드를 호출하더라도 전달하는 인수에 따라 적절한 오버로딩된 메서드가 호출됩니다.
오버로딩은 자바에서 많이 사용되며, 자바 API에서도 오버로딩된 메서드들을 많이 찾아볼 수 있습니다. 오버로딩을 통해 코드의 가독성과 재사용성을 높일 수 있습니다.
메소드 오버로딩(Method Overloading):
- 클래스 내부에 동일한 이름의 메소드를 여러 개 정의하는 것을 말합니다.
- 메소드 오버로딩은 메소드의 시그니처(매개변수의 타입, 개수, 순서)가 서로 다른 경우에 사용됩니다.
- 메소드 오버로딩은 메소드의 반환 타입이 다른 경우에는 오버로딩되지 않습니다.
- 메소드 오버로딩은 다형성(Polymorphism)의 한 형태로, 동일한 이름의 메소드를 사용하여 다양한 타입의 인수를 처리할 수 있습니다.
생성자 오버로딩(Constructor Overloading):
- 클래스 내부에 동일한 이름의 생성자를 여러 개 정의하는 것을 말합니다.
- 생성자 오버로딩은 생성자의 매개변수의 타입, 개수, 순서가 서로 다른 경우에 사용됩니다.
- 생성자 오버로딩은 객체의 생성 시 다양한 인수 조합을 허용하고, 객체를 다양한 방법으로 초기화할 수 있도록 합니다.
728x90
반응형
'JAVA > JAVA 이론' 카테고리의 다른 글
[JAVA] Override (메소드 재정의) (0) | 2024.03.04 |
---|---|
[JAVA] 상속extend / 부모 클래스(Superclass), 자식 클래스(Subclass) (0) | 2024.03.04 |
[JAVA] 삼항 연산자(Ternary Operator) / if - else대신 사용 (0) | 2024.02.28 |
[JAVA] 전역변수 = static변수 (0) | 2024.02.28 |
[JAVA]캡슐화(Encapsulation) (0) | 2024.02.27 |