Мой метод не возьмет объект

Я делаю программу броска кубиков, чтобы имитировать бросание кубика заданное количество раз. Сначала я создаю объект "Die" с заданным числом сторон, а затем использую этот "Die" в методе броска, который имитирует количество времени, которое он будет брошен.

Может кто-нибудь уточнить?

public class Die {

    private int numSides;

    public Die() {
        numSides = 0;
    }

    public Die(int sides){
        numSides = sides; 
    }

    public void setSides(int sides){
        numSides = sides;
    }

    public int getSides(){
    return numSides;
    }
}

public class DiceRoll {

    public static void main(String []args){


        Die sixSides = new Die(6);
        sixSides.roll(7); //ERROR: "the method is undefined for type Die" 


        //Prints out the roll outcomes for the given die
        public void roll(int numTimes){
            for (int i = 0; i < numTimes; i++){
                int rand = 1 + (int)(Math.random()*this.getSides());
                System.out.println(rand);
            //ERROR: "cannot use THIS in a static context".

            }
        }   
    }
}

Ошибка:

метод не определен для типа Die не может использовать это в статическом контексте

2 ответа

Решение

Этот метод:

public void roll(int numTimes){
    for (int i = 0; i < numTimes; i++){
        int rand = 1 + (int)(Math.random()*this.getSides());
        System.out.println(rand);
    }
} 

в настоящее время объявлено в main метод, который в первую очередь недопустим. Вы не можете объявить метод внутри метода. Это объясняет вторую ошибку. main статичен, поэтому вы не можете использовать this там.

Первая ошибка возникает потому, что roll метод не определен в Die учебный класс. Чтобы это работало:

Die sixSides = new Die(6);
sixSides.roll(7);

roll должны быть объявлены в Die учебный класс. Это потому, что вы пытаетесь позвонить roll на Die объект.

Чтобы исправить обе ошибки, просто переместите roll метод к Die учебный класс!

Вы должны определить roll() метод внутри Die учебный класс

Другие вопросы по тегам