inflearn logo
강의

Course

Instructor

Java Basics by Nadokoding - Full Course (20 hours)

Class

나도코딩님 랜덤짓는법 어디서 배웠죠??

Resolved

452

youngsuone0454

9 asked

0

 랜덤 짓는법 어디서 배웠는지 못찾겠네요 ㅠ

그리고

Math Random 클래스와 Random변수? 가 어떻게 다른건가요

 

oop java

Answer 2

3

nadocoding

안녕하세요?
Random 의 사용법은 패키지 (chap_07._11_Package) 를 공부할 때 배웠습니다. IntelliJ 에서 Ctrl + Shift + F 를 입력하신 뒤에 찾으려는 검색어 (예: Random) 를 입력하시면 어느 곳에서 해당 구문이 사용되었는지 쉽게 확인하실 수 있답니다. 😆

image

Math.random() 과 Random 은 사실 크게 다르지 않습니다. Random 은 java.util 패키지 내에, Math 는 java.lang 패키지 내에 정의되어 있는데요.

System.out.println(new Random().nextDouble()); // java.util.Random
System.out.println(Math.random()); // java.lang.Math

Math.random() 부분을 Ctrl 누른 상태에서 클릭해보시면 다음과 같이 생긴 메소드를 확인할 수 있구요.

// 1. Math.random() 메소드
public static double random() {
    return RandomNumberGeneratorHolder.randomNumberGenerator.nextDouble();
}

randomNumberGenerator 라는 부분을 동일한 방법으로 클릭해보시면 이렇게 정의된 것을 확인할 수 있습니다.

// 2. randomNumberGenerator 객체
static final Random randomNumberGenerator = new Random();

그리고 뒤의 .nextDouble() 부분을 동일하게 클릭해보시면 다음과 같은데요.

// 3. nextDouble() 메소드 (= java.lang.nextDouble)
public double nextDouble() {
    return (((long)(next(26)) << 27) + next(27)) * DOUBLE_UNIT;
}

이 메소드가 구현된 위치를 확인해보면 결국 java.util.Random 클래스라는 것을 알 수 있습니다.

단, Math.random() 은 double 실수값만 랜덤으로 뽑을 수 있는 반면에 Random 을 이용하면 double, float, boolean, int, long 등 다양한 형태의 수를 뽑을 수 있습니다.

감사합니다 😊

0

inchestry

지나가다 보았지만, 강의 퀄리티만큼 답변도 장난이 아니네요..! 질문한 사람도 아닌데 제가 다 감동 받고 갑니다.. 유튜브 멤버쉽도 했지만 이런 내용을 보니 돈주고 산 보람이 있네요... ㅠ

0

nadocoding

안녕하세요, InChestry 님!
제 강의를 통해 공부하시는 분들이 하나씩 개념을 익혀나가는 모습을 보면 정말 큰 보람을 느낍니다. 질문글이 올라오면 저도 과거에 많이 겪어봤기에 어떤 부분을 어려워하시는지 충분히 이해도 되구요 ㅎㅎ 유료 강의인 만큼 수강생 분들이 모든 내용을 충분히 이해하고 넘어가실 수 있도록 제가 할 수 있는 선에서 최선을 다하겠습니다.
따뜻한 말씀 진심으로 감사하며, 저도 초심을 잃지 않도록 노력하겠습니다.
감사합니다 😊

자바를 처음 배울 때 이런 고민이 드는 게 정상일까요?

0

132

2

static이 뭐였는지 기억이 안나요 ㅜㅜ

0

110

2

Iterator (알 수 없음) 데이터 삭제 후 초기화 관련 문의

0

69

1

사고력 키우는 법이 어떤게 있나요?

0

87

2

getter setter

0

100

2

섹션9. 66 메소드 오버로딩 시 질문이 있습니다.

0

77

1

안녕하세요 갑자기 프로그램 에러가 떠서 안되네요

0

75

2

변수 이름짓는법

0

114

2

intelli J 실행오류

0

114

2

혹시 이건 수학적 사고가 부족한 걸까요?

0

152

2

영상이 재생이 안됩니다.

0

163

3

이중 반복문 (후반전) 오른쪽으로 치우친 별 쌓기에 질문이 있습니다.

0

114

2

응용이 어렵습니다.

0

203

2

IntelliJ가 보이지 않습니다.

0

182

3

JDK 버전 문의

0

128

2

BlackBox 파일 내에서 메소드 정의

0

135

1

동기화

0

120

2

Iterator 문의

0

101

1

코드 순서 문의

0

139

1

클래스 메소드

0

146

2

Quiz_05 관련 질문드립니다 !

0

114

2

다운로드가 안됩니다

0

162

2

다형성

0

115

2

HashMap

0

75

2