※오버로딩 (Overloading) 메서드 ★★★★★
- 같은 클래스에서 메서드명은 같은데
매개변수의 개수나 자료형이 다른 것
void func(int a)
void func(double a)
void func(int a, int b)
void func(int a, String b)
※재귀호출 (recursive call)
- 메서드의 내부에서 메서드 자기 자신을 다시 호출하는 것
- 반복적인 작업을 해야 하는 메서드에 반복문 대신 재귀 호출을 이용하면, 메서드를 훨씬 간단하게 할 수 있는 경우가 있음
대표예제 1) 팩토리얼(factorial) 구하기
팩토리얼 :한 숫자가 1이 될 때까지 1씩 감소시켜가면서 계속 해서 곱해 나가는 것
- f(n)=n*f(n-1), 단 f(1)=1
4!=4*3*2*1
4!=4*3!
3!=3*2!
2!=2*1!
1!=1
대표예제 2) 피보나치수열 만들기
피보나치수열 : 앞에 있는 두 개의 값을 더하는 형태
- 첫 번째 피보나치 수열의 값은 0 이고, 두 번째와 세 번째 피보나치 수열의 값은 1 임
else : fib(n-2) + fib(n-1)
public static int fib(int n) {
int result =0;
for(int i=0;i<n;i++) {
if(n==0) {
result =0;
}else if (n==1) {
result =1;
}else {
result = fib(n-2) + fib(n-1);
}
} return result;
}
public static void main(String[] args) {
for(int i=0;i<10;i++) {
int res = fib(i);
if(i!=9) {
System.out.print(res+", ");
}else {
System.out.print(res);
}
}
== >0, 1, 1, 2, 3, 5, 8, 13, 21, 34
▣ Math.random
- 0.0 <= x < 1.0 범위의 임의의 실수를 리턴하는 메서드
※ 사용규칙
1) 발생시키려는 수의 개수를 각 변에 곱한다
2) 시작값을 더한다
3) int 로 형변환한다
▽1~100 사이의 임의의 정수 구하기
[1] Math.random()*100
0.0 <= x < 100.0 //0부터 99까지 (100개
[2] +1 => Math.random()*100+1
1.0 <= x < 101.0 //1부터 100까지 (100개
[3] (int) => (int)(Math.random()*100+1)
1 <= x < 101 //(int) 1부터 100까지 (100개
▽a~z 사이의 임의의 문자 구하기 (97~122)
=> (Char)(Math.random() * 26 + 'a')
'JAVA' 카테고리의 다른 글
[JAVA] 객체와 클래스 (0) | 2022.02.21 |
---|---|
[JAVA] 배열 (0) | 2022.02.19 |
[JAVA] 메서드 (0) | 2022.02.16 |
[JAVA] 반복문 / while / do~while문 / 무한루프 / charAt / for문 마지막 "," 제거 (0) | 2022.02.15 |
[JAVA] for 무한루프 / scope / (0) | 2022.02.14 |