类Random Java:Random类型的方法“roll()”未定义。为什么?

类Random Java:Random类型的方法“roll()”未定义。为什么?,java,random,Java,Random,我必须使用方法签名:public int roll 我只是不明白为什么我不能从我的新随机对象调用那个方法。请帮忙 import java.util.Random; public class Die { private int faceValue; private Random random; public Die() { Random r = new Random(); r.roll(); // "The method ro

我必须使用方法签名:public int roll 我只是不明白为什么我不能从我的新随机对象调用那个方法。请帮忙

import java.util.Random;


public class Die {

    private int faceValue;
    private Random random;

    public Die() {
        Random r = new Random();
            r.roll(); // "The method roll() is undefined for the type Random
    }

    public int getFaceValue() {
        return faceValue;
    }

    public int roll() {
        for(int i = 1; i <= 11; i++)
        {
            faceValue = random.nextInt(6) + 1;
        }
        return faceValue;
    }
}

你有一些基本的错误,这里有一个固定的版本:

import java.util.Random;


public class Die {
    private int faceValue;    
    private Random random;

    public Die() {
        this.random = new Random();
    }

    public int getFaceValue()   {
        return faceValue;
    }

    public int roll()   {
        for(int i = 1; i <= 11; i++){
            faceValue = random.nextInt(6) + 1;
        }
        return faceValue;
    }
}
或者,您可以直接在构造函数中滚动:

public Die() {
    this.random = new Random();
    System.out.println(this.roll());
}

你的掷骰方法是针对你的类型骰子,而不是随机骰子。嗯,根本没有mtehod掷骰子,因为它是你的类骰子的一种方法。你试过只写roll或这个.roll吗?@deHaar没有Die的实例,那不会编译你的方法Die是你的构造函数,而不是你的main。在内部,应该只实例化随机对象,并将其影响到随机属性。然后,在代码中当前缺少的main方法中,您应该实例化一个DIe对象,然后在此对象上调用roll方法。顺便说一句,您的意思是将类命名为Dice吗?出于某种原因,我必须在构造函数中调用roll方法。谢谢你的帮助though@VitoNoble编辑我的答案以显示构造函数中的滚动。如果您觉得有帮助,请随时:
public Die() {
    this.random = new Random();
    System.out.println(this.roll());
}