对于calc的100个元素中的每一个,使用实例化一个Claclal对象 随机生成的数字。使用Random类和.nextDouble()方法 为了这。
我已经创建了100个元素,但我无法向数组中添加任何数字。当我尝试添加任何随机数时,我得到一个错误,说它需要一个claclal但是它找到了一个int。
public class Claclal {
private static Claclal[] calc;
public static void main(String[] args) {
Random r = new Random();
calc = new Claclal[100];
for (int i = 0; i <calc.length; i++) {
calc[i] = new Claclal();
calc[i] = (int)(Math.random());
}
我得到的错误是在最后一行。 我不能改变对int的引用,因为它应该是一个claclal引用。我需要更改什么才能使代码生效?
答案 0 :(得分:1)
您有一个Clacal
类型的数组,而不是int类型。你有2个选择
1st)在Clacal中创建一个双重属性。
示例:
public class Claclal {
private static Claclal[] calc;
private final double number;
public Clacal(double number){
this.number=number;
}
public static void main(String[] args) {
Random r = new Random();
calc = new Claclal[100];
for (int i = 0; i <calc.length; i++) {
calc[i] = new Claclal(r.nextDouble());
}
}
2nd)制作一个双数组
public class Claclal {
private static double[] calc;
public static void main(String[] args) {
Random r = new Random();
calc = new Claclal[100];
for (int i = 0; i <calc.length; i++) {
calc[i] = r.nextDouble();
}
}
答案 1 :(得分:0)
calc[i] = (int)(Math.random());
这是不允许的,因为数组类型是Claclal
,并且您正在尝试插入整数。
您需要在Claclal
课程中添加一个字段并添加到该字段中。
Claclal c= new Claclal();
c.setRandomNumber((int)(r.nextDouble()));
calc[i] = c;
然后你的代码转了
public class Claclal {
private static Claclal[] calc;
private int randomNumber;
public static void main(String[] args) {
Random r = new Random();
calc = new Claclal[100];
for (int i = 0; i < calc.length; i++) {
Claclal c = new Claclal();
c.setRandomNumber((int) (r.nextDouble()));
calc[i] = c;
}
}
public int getRandomNumber() {
return randomNumber;
}
public void setRandomNumber(int randomNumber) {
this.randomNumber = randomNumber;
}
}
您使用Math.random()
并且想要使用r.nextDouble()
答案 2 :(得分:0)
您收到错误,因为claclal
类没有任何属性。
在claclal
中添加一个属性,如下所示:
import java.util.Random;
public class Claclal {
private static Claclal[] calc;
int value;
public Claclal( int value) {
this.value = value;
}
public static void main(String[] args) {
Random r = new Random();
calc = new Claclal[100];
for (int i = 0; i < calc.length; i++) {
calc[i] = new Claclal(r.nextInt());
System.out.println(""+calc[i].value);
}
}
}
答案 3 :(得分:0)
您正尝试将int
值指定为Claclal
数组的元素。
您应该在Claclal
类中添加一个字段,以在每个对象中存储double值。在main
方法中,使用已实例化的Random
对象将新的随机double
值传递给数组中每个新Claclal
实例的构造函数。< / p>
import java.util.Random;
public class Claclal {
// the double field to store a value
private double value;
public Claclal(double value) {
this.value = value;
}
// getter
public double getValue() {
return this.value;
}
// setter
public void setValue(double value) {
this.value = value;
}
public static void main(String[] args) {
Random r = new Random();
Claclal[] calc = new Clalcal[100];
for (int i = 0; i < calc.length; i++) {
// add new Claclal object with a random double value
calc = new Claclal(r.nextDouble());
}
}
}