Java API Documentation

Examples

1) Math.random()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Example_01 {
public static int rollDice() {
// random num between 0 and (almost) 1
double randomNumber = Math.random();

// change range to 0 to (almost) 10
randomNumber = randomNumber * 10;

// convert datatype from double to integer
int randomInt = (int)randomNumber;

// returns
return randomInt;
}
}

Math 클래스의 random() 사용법이다. 랜덤으로 수를 반환하는 메서드이다.

Math.random()은 0부터 1까지의 double형 랜덤 상수를 추출한다. 여기에 다른 상수를 곱하면 (min) 0은 그대로지만 (max) 1이 상수와 연산되어 랜덤 값의 범위를 조정할 수 있다.

random()가 실행될 때마다 서로 다른 값을 추출하게 되므로 변수를 선언하여 값을 여러개 생성할 수 있다.

1
2
int ran1 = randomInt;   // 3
int ran2 = randomInt; // 7

2) Math.max()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Example_02 extends Example_01 {
public static void main(String[] args) {
// save random number to a
int a = rollDice();
System.out.println("a is "+a); // shows what is number of a

// save random number to b
int b = rollDice();
System.out.println("b is "+b); // shows what is number of a

// compare which is the larger between a and b
int largeNum = Math.max(a, b);
System.out.println("Largest is "+largeNum);
}
}
// 출력 결과
// a is 2(random)
// b is 4(random)
// Largest is 4

Math 클래스의 max() 사용법이다. argument로 받은 두 수중 어느 수가 더 큰지를 판별할 때 사용하는 메서드이다.

앞서 상속을 배워서 깨알처럼 이용해봤다 ㅋㅋ Example_01 클래스를 상속받아서 rollDice() 를 사용했다. 변수를 선언하여 각각 rollDice() 가 반환하는 값을 저장하고, max()를 사용하여 두 수중 어느 수가 더 큰 수인지를 비교했다.

Why?

공부하는데에 빠질 수 없는 부분이다.

위에서 소개한 Math.random() 은 Java의 내장 객체 Math 클래스의 random() 를 사용한 것이다. 개발자는 그저 호출하여 사용할 뿐이고, 내부에서 어떤 동작을 하는지 원리에 대해선 알 수 없다. 이를 알기 위해서는 Java API Documentation을 봐야 한다.

그런데 Java API Documentation을 봐야할까?
어떻게 작동되는지 여부를 꼭 알아야 하는 걸까?


몰라도 상관없다면 좋겠지만, Example_01에서 사용한 Math.random()만 하더라도 이게 int형을 반환하는지, double형을 반환하는지 Java API Documentation을 보기 전까지는 알 수 없다. 그래도 이 정도는 친절하신 Eclipse께서 알려주실거다. 그러나 반환값의 범위가 0부터 1인것은 어덯게 알 수 있을까?


마찬가지로 Exmapl_02에서 사용한 Math.max() 역시 Java API Documentation에서 상세하게 설명되어지고 있다. argument로 어떤 값이 들어와야 하고, 그럼 어떤 값이 return되는지.


자바에 있는 모든 개념을 알 수 없기 때문에 필요할 때마다 Java API Documentation을 보는 훈련을 꾸준히 하는 것이 중요할 것 같다. 블로그를 운영하는 목적도 이와 비슷하다. 내 머리는 하드 드라이브처럼 비휘발성 메모리가 아닌 RAM과 같은 휘발성 메모리이기 때문에, 이 블로그를 하드 드라이브로 운영하고, 이 블로그를 다시 찾아봄으로써 필요한 지식을 RAM으로 끌어와서 코딩(CPU)을 할 생각이다.

updated.

트위터에서 좋은 글을 발견해서 남겨본다.
경험 사례를 통해 왜 공식문서를 봐야 하는지를 정리한 포스팅이다.
이소영 - 공식문서에서 시작하기