Java 这个代码我做错了什么?[爪哇]

Java 这个代码我做错了什么?[爪哇],java,Java,我对Java非常陌生,我想知道这段代码有什么问题,它给了我一个错误,告诉我: 线程“main”java.lang中出现异常。错误:未解决的编译问题: 对于Random类型,未定义方法nextInt(int) main(Random.java:8) 线程“main”java.lang中出现异常。错误:未解决的编译问题: 对于Random类型,未定义方法nextInt(int) 您的Random类隐藏java.util.Random。重命名你的类 Random rnd=new Random()创建类

我对Java非常陌生,我想知道这段代码有什么问题,它给了我一个错误,告诉我:

线程“main”java.lang中出现异常。错误:未解决的编译问题:

对于Random类型,未定义方法nextInt(int)

main(Random.java:8)

线程“main”java.lang中出现异常。错误:未解决的编译问题: 对于Random类型,未定义方法nextInt(int)


您的
Random
类隐藏
java.util.Random
。重命名你的类


Random rnd=new Random()
创建类的实例而不是
java.util.Random
,并且您的类没有
nextInt
方法。

您的
Random
类隐藏
java.util.Random
。重命名你的类


Random rnd=new Random()
创建类的实例而不是
java.util.Random
,并且类没有
nextInt
方法。

当java看到对象的声明时,引用的类取决于对象的声明方式

  • 如果类的名称不是完全限定的,那么java将首先在类所在的包中查找,然后在import语句中搜索类和包,以尝试找到合适的类
  • 如果声明中的类的名称是完全限定的,那么将使用完全限定的类,也就是说,您确切地告诉编译器您希望对象是哪个对象类
在本例中,您有自己的名为Random的类,该类正在导入
java.util.Random
。但是,由于类名在声明时没有完全限定,因此当前包中的类
Random
优先,这意味着在文件中导入
java.util.Random
,实际上会被忽略

一些选择:

  • 重命名你的类
  • 如果希望引用java.util.Random,请使用完全限定类名
e、 g

在本例中,使用完全限定名可以消除希望引用的类的歧义,并显式地告诉Java要使用哪个版本


如果这是为了学习,那么使用相同名称的类就可以了,但是,对于需要其他人长期维护的代码,您可能需要重新考虑您的命名约定。

当Java看到对象的声明时,引用什么类取决于对象的声明方式

  • 如果类的名称不是完全限定的,那么java将首先在类所在的包中查找,然后在import语句中搜索类和包,以尝试找到合适的类
  • 如果声明中的类的名称是完全限定的,那么将使用完全限定的类,也就是说,您确切地告诉编译器您希望对象是哪个对象类
在本例中,您有自己的名为Random的类,该类正在导入
java.util.Random
。但是,由于类名在声明时没有完全限定,因此当前包中的类
Random
优先,这意味着在文件中导入
java.util.Random
,实际上会被忽略

一些选择:

  • 重命名你的类
  • 如果希望引用java.util.Random,请使用完全限定类名
e、 g

在本例中,使用完全限定名可以消除希望引用的类的歧义,并显式地告诉Java要使用哪个版本


如果这是为了学习,那么使用相同名称的类就可以了,但是,对于需要其他人长期维护的代码,您可能需要重新考虑您的命名约定。

我认为这会导致java.util.Random和您自己的Random类之间发生冲突。我想在你写的那行中,
Random rnd=new Random()它从您自己的随机类创建一个对象。信息技术It’最好将您的类重命名为
CustomizeRandom
或类似的东西我认为这会导致java.util.Random与您自己的Random类之间发生冲突。我想在你写的那行中,
Random rnd=new Random()它从您自己的随机类创建一个对象。信息技术It’最好将您的类重命名为
customizeradom
或类似的东西,因为您刚刚使用了
Random
类(用户定义),但需要使用
java.util.Random

以下是一个可能对您有所帮助的工作示例:

import java.util.Random;
class RandomNumber {
    public static void main(String[] args) {
        Random rdm= new Random();
        int c=100;
        System.out.println("no is "+rdm.nextInt(c));
    }
}
它生成一个介于0和100之间的数字,您还可以使用
Random
类的其他方法

编辑:@vogel&@trengot感谢您编辑此答案,从下一次开始,我将用更正式的语言回答。(y)

正如您刚才使用的
Random
类(用户定义),但您需要使用
java.util.Random

以下是一个可能对您有所帮助的工作示例:

import java.util.Random;
class RandomNumber {
    public static void main(String[] args) {
        Random rdm= new Random();
        int c=100;
        System.out.println("no is "+rdm.nextInt(c));
    }
}
它生成一个介于0和100之间的数字,您还可以使用
Random
类的其他方法


编辑:@vogel&@trengot感谢您编辑此答案,从下一次开始,我将用更正式的语言回答。(y)

1-您定义了自己的类
Random
;2-您没有使用
java.util.Random
class1-您定义了自己的类
Random
;2-您没有使用
java.util.Random
import java.util.Random;
class RandomNumber {
    public static void main(String[] args) {
        Random rdm= new Random();
        int c=100;
        System.out.println("no is "+rdm.nextInt(c));
    }
}