[질문] 자바 클래스 질문입니다..
회사원
안녕하세요..
이제 막 클래스를 배웠는데..역시나 잘 이해가 안가서 질문 올립니다.
책에 있는 예제를 보면 FlipCoin이라 해서
1000번 동안 동전을 던져서 head,tail이 몇번씩 나오나 세는 프로그램인데요..
import java.util.Random;
public class Coin
{
private final int HEADS = 0;
private final int TAILS = 1;
private int face;
public Coin()
{
flip();
}
public void flip()
{
face = (int) (Math.random() * 2); //이부분에서 왜 랜덤으로 정한 숫자에 2를 곱하는 건가요?? 그리고 이미 위에서 face는 int으로 지정해노았는데 왜 또(int)를 한건가요??
}
public boolean isHeads()
{
return (face == HEADS);//이 부분은왜있는건가요..-_-;;위에Math.random()부분이 이해가 안가니여기도 역시나 이해가 안갑니다. 분명히HEADS는 0으로 지정해놓았는데..어떻게 face랑 HEADS랑 같을수가 있나요? 그리고 return이라 써있는데..어디로 return하는건가요? 만약에 다른 프로그램에서 isHead가 필요하면 return 한다는건가요?
}
public String toString()
{
String faceName;
if (face ==HEADS)
faceName = Heads;
else
faceName = Tails;
return faceName; //여기도return이 어떻게 쓰이는지 궁금합니다..
}
}
public class CountFlips
{
public static void main(String[]args)
{
final int NUM_FLIPS = 1000;
int heads = 0, tails = 0;
Coin myCoin = new Coin();
for (int count = 1; count = NUM_FLIPS; count++)
{
myCoin.flip();
if(myCoin.isHeads()) //이부분에 isHead가 있는데, 만약에 isHead가 true이면 head++이런 뜻인가요??
heads++;
else
tails++;
}
System.out.println(The number of flips: + NUM_FLIPS);
System.out.println(The number of heads: + heads);
System.out.println(The number of tails: + tails);
}
}답변 부탁드립니다(__)
-
Sweet
답변 달아주신분들 정말 감사합니다. 이제서야 이해가 가네요..저는 Math.random이 1~유저가 지정한 숫자까지 랜덤으로 숫자를 고르는줄 알았는데 그게 아니군요..^^;; 정말 감사합니다
-
미영
답변을 달아주고 싶은 질문이었나 보네요..^^
이미 좋은 답변들이 많아 덧글만 쓰고 갑니다.~~
다른 분들도 질문하실때 참조하시면 좋겠네요.
뭐 모범질문은 아니겠지만..^^