메소드 오버로딩 , Method Overloading
- 같은 이름의 메소드를 여러개 만드는 기술
- 메소드가 인자리스트의 형태를 다양하게 구성하여, 동일한 메소드명을 가질 수 있게 하는 기술
- 메소드 오버로딩 가능 조건
- 인자(매개변수)의 갯수가 달라야함.
- 인자의 타입이 달라야함.
- 오버로딩 불가능 조건
- 인자의 이름이 같으면 호출시 문제 발생.
- 반환값 타입이 다르더라도 매개변수의 이름이 같으면 호출시 문제 발생.
1. public static void test() {} // 가능.
2. public static void test() {} // 불가 . 1번이 이미 있어서
3. public static void test(int n) {} // 가능 . 인자값에 따라 식별이 가능
4. public static void test(int m) {} // 불가. 3번 때문
5. public static void test(String s) {} // 가능. 인자 타입으로 구분가능.
6. public static void test(int n, int m) {} // 가능. 호출시 구분 가능.
7. public static void test(int n, String s) {} // 가능 .
8. public static void test(String s, int n) {} // 가능 .
9. public static String test(int n) {} // 불가능 . 3번과 구분 불가.
재귀 메소드 , Recursive Method
- 메소드가 자신의 구현부에서 자신을 호출하는 구문을 가지는 메소드
- 자기 자신을 호출하는 메소드
- 가장 쉬운 예로 팩토리얼
public class a {
public static void main(String[] args) {
int n =4;
int result = fatorial(n);
System.out.println(result);//24
}
public static int factorial() {
int temp = ( n==1 ) ? 1 : n*factorial(n-1) ;
return temp;
}
}
'프로그래밍 > Java' 카테고리의 다른 글
[JAVA]연산자 (0) | 2021.08.12 |
---|---|
[JAVA] 생성자 (0) | 2021.08.12 |
[Java] 자료형 (0) | 2021.07.11 |