程序运行比终止,为什么?有点困惑,因为没有语法错误,请解释为什么它终止,谢谢。相当新的java和使用数组。
import java.text.*;
import java.util.*;
public class randomizer {
public void randomizer() throws InterruptedException
{
randomizer r = new randomizer();
int[] numbers = {3,7,2,62,1,53,16,563,12,13,75};
Calendar rightNow = Calendar.getInstance();
int hour = rightNow.get(Calendar.HOUR_OF_DAY);
int minute = rightNow.get(Calendar.MINUTE);
int seconds = rightNow.get(Calendar.SECOND);
int[] numbers2 = {10,32,61,2,5};
int[] date = {hour,minute,seconds};
int RandomNumber = (r.getRandom(date) * r.getRandom(numbers)) + r.getRandom(numbers2);
while(true) // just for test case purposes
{
Thread.sleep(1000);
System.out.println(RandomNumber);
}
}
public static int getRandom(int[] array) {
int rnd = new Random().nextInt(array.length);
return array[rnd];
}
public static void main(String[] args) {
randomizer r = new randomizer();
}
}
答案 0 :(得分:3)
您的randomizer
类没有定义构造函数,因此在void main
方法中构造它不会做任何事情。
值得注意的是,您的类确实定义了void randomizer()
方法 - 这可能是一个错误。注意,类应该是Pascal大小写(Randomizer
,方法应该是驼峰大小写(randomizer
)。
答案 1 :(得分:0)
应用已终止,因此无效:
public static void main(String[] args) {
randomizer r = new randomizer();
}
这里你创建了一个类随机化器的对象到目前为止很好..
但在代码中你有这个:
public void randomizer() throws InterruptedException
{....
....
}
并且这不是构造函数,这是一个方法......所以只要你不调用它就不会被执行......
您需要通过执行
将其更改为构造函数randomizer() throws InterruptedException
{....
....
}
或在主方法中调用
public static void main(String[] args) {
randomizer r = new randomizer();
r.randomizer();
}
之后修改方法,因为你还有
public void randomizer() throws InterruptedException
{
randomizer r = new randomizer(); //this will recursive create objects until overflows....
int[] numbers = {3,7,2,62,1,53,16,563,12,13,75};
Calendar rightN
答案 2 :(得分:0)
你已经创建了一个随机化器对象但实际上并没有做任何其他事情。您实现的方法(randomizer())不是构造函数,因此您需要调用它。所以在你的主要方法中你需要立即做这两件事:
randomizer r = new randomizer(); r.randomizer();
为了让你的逻辑内部开始。
PS1阅读java中的命名约定 PS2看起来你想要实现一个构造函数。如果你的方法' public void randomizer()'应该是一个然后删除关键字(返回类型)' void'当你使用'随机函数r = new randomizer();'在main中,然后你的逻辑将执行..