[ 작업 환경 ]

 

Windows10

jdk-15

 

 

 

 

 

1. 주사위 객체 생성

 

// Die.java

public class Die {
    private final int MAX = 6;
    private int faceValue;

    public Die() {
        faceValue = 1;
    }

    public int roll() {
        faceValue = (int)(Math.random() * MAX) + 1;
        return faceValue;
    }

    public void setFaceValue(int value) {
        if (value > 0 && value <= MAX)
            faceValue = value;
        
    }

    public int getFaceValue(int value) {
        return value;
    }

    public String toString() {
        return Integer.toString(faceValue);
    }
    
}


 

 

 

 

 

2. 2개 주사위 동시에 굴려서 둘 다 1이 나오는 건수와 비율 구하기

 

public class SnakeEyes {
    public static void main(String[] args){
        final int ROLLS = 5000;
        int count = 0;

        Die die1 = new Die();
        Die die2 = new Die();

        for (int roll=1; roll <= ROLLS; roll++){
            if (die1.roll() == 1 && die2.roll() == 1){
                count ++;
            }
        }

        System.out.println("Number of rolls : " + ROLLS);
        System.out.println("Number of snake eyes : " + count);
        System.out.println("Ratio : " + (float)count/ROLLS);
        System.out.println("Expected Ratio : " + (float)1/36);
    }
}

 

 

 

 

 

3. 실행하기

 

javac Die.java
javac SnakeEyes.java
java SnakeEyes

 

 

 

 

 

 

4. Die.java 컴파일을 하지 않고 SnakeEyes.java 컴파일한 후 SnakeEyes 실행시

 

Exception in thread "main" java.lang.NoClassDefFoundError: Die
        at SnakeEyes.main(SnakeEyes.java:7)
Caused by: java.lang.ClassNotFoundException: Die
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
        ... 1 more

 Die.java를 컴파일하여 Die.class 파일을 만들어준 후 SnakeEyes를 실행시 정상적으로 작동하는 것을 확인할 수 있습니다.

 

 

 

 

 

 

 

 

+ Recent posts